1. 程式人生 > >leetcode 287 Find the Duplicate Number尋找重復數

leetcode 287 Find the Duplicate Number尋找重復數

bre i++ The () stl容器 insert cat != bsp

技術分享圖片

這道題用STL容器就很好寫了,可以用set也可以用map,

用unordered_map的C++代碼如下:

 1 class Solution {
 2 public:
 3     int findDuplicate(vector<int>& nums) {
 4         unordered_map<int, int> m;
 5         int res;
 6         for(int i=0;i<nums.size();i++){
 7             if(m.count(nums[i])){
 8                 res=nums[i];break
; 9 } 10 m[nums[i]]=i; 11 } 12 return res; 13 } 14 };

12ms beat 44%

使用set:

 1 class Solution {
 2 public:
 3     int findDuplicate(vector<int>& nums) {
 4         set<int> s;
 5         int res;
 6         for(int i=0;i<nums.size();i++){
7 if(s.find(nums[i])!=s.end()){ 8 res=nums[i];break; 9 } 10 s.insert(nums[i]); 11 } 12 return res; 13 } 14 };

16ms beat 33%

leetcode 287 Find the Duplicate Number尋找重復數