数组中重复的数字暴力解法和原地置换java完整代码
题目描述
java语言暴力解法
package jianzhi;
public class chongfushuzi {
public int findRepeatNumber ( int [ ] nums) {
int i, j;
int len= nums. length;
for ( i= 0 ; i< len- 1 ; i++ ) {
for ( j= i+ 1 ; j< len; j++ ) {
if ( nums[ i] == nums[ j] ) {
return nums[ i] ;
}
}
} return nums[ i] ;
}
public static void main ( String[ ] args) {
chongfushuzi heap1 = new chongfushuzi ( ) ;
int nums[ ] = { 0 , 1 , 2 , 3 , 4 , 11 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 } ;
int a;
a= heap1. findRepeatNumber ( nums) ;
System. out. print ( a) ;
}
}
java语言原地置换
package jianzhi;
public class chongfushuzi1 {
public int findRepeatNumber ( int [ ] nums) {
int temp;
for ( int i= 0 ; i< nums. length; i++ ) {
while ( nums[ i] != i) {
if ( nums[ i] == nums[ nums[ i] ] ) {
return nums[ i] ;
}
temp= nums[ i] ;
nums[ i] = nums[ temp] ;
nums[ temp] = temp;
}
}
return - 1 ;
}
public static void main ( String[ ] args) {
chongfushuzi heap1 = new chongfushuzi ( ) ;
int nums[ ] = { 0 , 1 , 2 , 3 , 4 , 11 , 3 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 } ;
int a;
a= heap1. findRepeatNumber ( nums) ;
System. out. print ( a) ;
}
}
java-hash表
package jianzhi;
import java. util. HashMap;
import java. util. Map;
public class chonghushuzi2 {
public int findRepeatNumber ( int [ ] nums) {
Map< Integer, Integer> hashmap = new HashMap < > ( ) ;
for ( int num : nums) {
if ( hashmap. containsKey ( num) ) {
return num;
}
hashmap. put ( num, 0 ) ;
}
return - 1 ;
}
public static void main ( String[ ] args) {
chongfushuzi heap1 = new chongfushuzi ( ) ;
int nums[ ] = { 0 , 1 , 2 , 3 , 4 , 11 , 3 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 } ;
int a;
a= heap1. findRepeatNumber ( nums) ;
System. out. print ( a) ;
}
}
javascript-hash表
var findRepeatNumber = function ( nums) {
let map = new Map ( ) ;
for ( let i of nums) {
if ( map. has ( i) ) return i;
map. set ( i, 1 ) ;
}
return null;
} ;