[剑指Offer][数组]数组中重复的数字
题目描述
在一个长度为n的数组里的所有数字都在0到n-1的范围内。,数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任一一个重复的数字。 例如,如果输入长度为7的数组[2,3,1,0,2,5,3],那么对应的输出是2或者3。存在不合法的输入的话输出-1。
1 public class Solution { 2 3 public int duplicate (int[] numbers) { 4 if(numbers.length == 0) { 5 return -1; 6 } 7 for(int i = 0; i < numbers.length; i ++) { 8 for(int j = i + 1; j < numbers.length; j ++) { 9 if(numbers[i] == numbers[j]) { 10 return numbers[i]; 11 } 12 } 13 } 14 return -1; 15 } 16 }
1 public class Solution { 2 public int duplicate (int[] numbers) { 3 if(numbers.length == 0) { 4 return -1; 5 } 6 int[] record = new int[numbers.length]; 7 for(int i = 0; i < numbers.length; i ++) { 8 record[numbers[i]] ++; 9 if(record[numbers[i]] > 1) { 10 return numbers[i]; 11 } 12 } 13 return -1; 14 } 15 }

浙公网安备 33010602011771号