[Leetcode] 287. 尋找重複數 java
阿新 • • 發佈:2018-12-17
給定一個包含 n + 1 個整數的陣列 nums,其數字都在 1 到 n 之間(包括 1 和 n),可知至少存在一個重複的整數。假設只有一個重複的整數,找出這個重複的數
示例 1:
輸入: [1,3,4,2,2]
輸出: 2
示例 2:
輸入: [3,1,3,4,2] 輸出: 3
說明:
- 不能更改原陣列(假設陣列是隻讀的)。
- 只能使用額外的 O(1) 的空間。
- 時間複雜度小於 O(n2) 。
- 陣列中只有一個重複的數字,但它可能不止重複出現一次。
class Solution { public int findDuplicate(int[] nums) {// if(nums.length==0) return 0; Arrays.sort(nums); int i=0,j=nums.length-1; int result=0; while(i<j){ if(nums[i]==nums[i+1]){ result=nums[i]; break; } else i++; if(nums[j]==nums[j-1]){ result=nums[j]; break; } else j--; } return result; } }