Leetcode--287. 寻找重复数
給定一個包含?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) {
? ? ? Arrays.sort(nums);
?? ?int i;
?? ?for(i=0;i<nums.length-1;i++)
?? ?{
?? ??? ?if(nums[i]==nums[i+1])
?? ??? ?{
?? ??? ??? ?return nums[i];
?? ??? ?}
?? ?}
?? ?return nums[0];
? ? }
}
完整的代碼:
import java.util.Arrays;
public class Solution287 {
public static int findDuplicate(int[] nums) {
?? ?Arrays.sort(nums);
?? ?int i;
?? ?for(i=0;i<nums.length-1;i++)
?? ?{
?? ??? ?if(nums[i]==nums[i+1])
?? ??? ?{
?? ??? ??? ?return nums[i];
?? ??? ?}
?? ?}
?? ?return nums[0];
? ? }
public static void main(String[] args)
{
?? ?//int nums[] = {1,3,4,2,2};
?? ?int nums[] = {3,1,3,4,2};
?? ?System.out.println(findDuplicate(nums));
}
}
?
總結
以上是生活随笔為你收集整理的Leetcode--287. 寻找重复数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信号时频图的横纵坐标对调
- 下一篇: 7-3 银行排队问题之单队列多窗口服务