寫在前面,小白從零刷題,在解答會寫出思路,正確答案,以及所有使用到的語法和知識點
思路就是利用集合不能有重複數字的這個特性,把陣列中的元素依次送入集合當中,判斷一下這個元素是否被送入,如果已經被送入,那麼返回該值,這樣得到的是第乙個重複的元素
class
solution
else
}return0;
}};
2不看答案做
class
solution
else
}return-1
;}};
1.其實這個方法的思路不是特別懂,但是實在理解不了了,基本思路就是要先排序,因為題目可以分析出如果順序正確那麼下標和下標對應的陣列元素是否一致的,如果不一致,判斷是否有nums[i] == nums[nums[i]],如果不重複那麼交換這兩個元素,接著下乙個。單證不太理解這裡的方法之後希望可以搞懂吧
class
solution
}return0;
}};
不看答案做
class
solution
else}}
return0;
}};
set c++primer 11.1
c++set用法總結
set自動忽略重複的元素,且從小到大排列,
c++中的for(auto a:b)用法
範圍for語句 c++primer 5.4.3
最開始可以使用無序的集合,這樣速度會快,原因應該是不需要進行排序這一項操作
劍指offer03 陣列中重複的數字
在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3限制 2 n 100000 首先拿到這道題最先想到的是...
劍指Offer03 陣列中重複的數字
劍指offer典型題整理 爭取做最好的題解 題目描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限...
劍指offer 03陣列中重複的數字
找出陣列中重複的數字。在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 首...