AcWing 13. 找出數組中重複的數字

習題地址 https://www.acwing.com/solution/acwing/content/2919/.算法

 

題目描述
給定一個長度爲 n 的整數數組 nums,數組中全部的數字都在 0∼n−1 的範圍內。數組

數組中某些數字是重複的,但不知道有幾個數字重複了,也不知道每一個數字重複了幾回。spa

請找出數組中任意一個重複的數字。code

注意:若是某些數字不在 0∼n−1 的範圍內,或數組中不包含重複數字,則返回 -1;blog

樣例排序

給定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。

返回 23

算法1
排序 而後比對重複的數字get

代碼io

class Solution {
public:
    int duplicateInArray(vector<int>& nums) {
        if(nums.empty())
            return -1;
        int n = nums.size();
        sort(nums.begin(),nums.end());
        for(int i =0;i < nums.size()-1;i++){
            if(nums[i] <0 || nums[i] > n-1 )
                return -1;
            if(nums[i] == nums[i+1])
                return nums[i];
        }

        return -1;
    }
};


做者:defddr
連接:https://www.acwing.com/solution/acwing/content/2919/
來源:AcWing
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索