leetcode:剑指offer----数组中重复的数字
生活随笔
收集整理的這篇文章主要介紹了
leetcode:剑指offer----数组中重复的数字
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目:
在一個長度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0~n-1 的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個數(shù)字重復(fù)了,也不知道每個數(shù)字重復(fù)了幾次。請找出數(shù)組中任意一個重復(fù)的數(shù)字。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
示例1:
[2, 3, 1, 0, 2, 5, 3] 輸出:2 或 3解題方法:
-
C++解決
利用C++的STL中的set或者unordered_set不允許重復(fù)值的特性來解決。通過名字可以看出來,set內(nèi)部的數(shù)據(jù)是有序的,unordered_set內(nèi)部的數(shù)據(jù)為無序,所以在不需要排序時,unorder_set會比set的效果好。
#include <iostream> #include <set> #include <unordered_set>int main() {set<int> orderSet;unordered_set<int> unorderSet;//返回set容器中的第一個元素int begin = orderSet.begin();//返回set容器中的最后一個元素int end = orderSet.end();//刪除set容器中的所有元素orderSet.clear();//判斷容器是否為空bool isEmpty = orderSet.empty();//返回set容器中的元素個數(shù)int size = orderSet.size();//返回一個指向被查到元素的迭代器set<int>::iterator it;it = orderSet.find(target);//向set容器中添加一個元素orderSet.insert(5);return 0; }-
python解決
python中同樣利用set集合來實(shí)現(xiàn)該問題
def findRepeatNumber(nums):s = set()for num in nums:#得到set集合內(nèi)部元素格式length = len(s)#往set集合中添加元素s.add(num)if len(s) == length:return numelse:continuereturn None總結(jié)
以上是生活随笔為你收集整理的leetcode:剑指offer----数组中重复的数字的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【编程】char unsigned in
- 下一篇: 寄存器分配图着色_【02】从零开始的卡通