習題地址 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]。 返回 2 或 3。
算法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 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。