[剑指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 }

 

posted @ 2021-05-13 23:53  StringBuilder  阅读(52)  评论(0)    收藏  举报