剑指offer-数组中的重复的数字-p39
生活随笔
收集整理的這篇文章主要介紹了
剑指offer-数组中的重复的数字-p39
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數組
c++中的STL中的vector
(STL中的vector每次擴容量時,新的容量都是之前一次的兩倍)
在c/c++中,數組和指針是相互關聯又有區別的兩個概念。
關聯:當我們聲明一個數組時,其數組的名字也是一個指針,該指針指向數組的第一個元素。我們可以用一個指針來訪問數組。
這里是因為作者的編輯環境是在win64,vscode編譯器下。
data1是一個數組,sizeof(data1)是求數組的大小int類型的常量是占四個字節的,5*4=20;
data2聲明為指針,盡管它指向了數組的第一個數字,但他的本質任然是一個指針,在64位操作系統上,對任意指針求sizeof,得到的結果都是8;
在c/c++中,當數組作為函數的參數進行傳遞時,數組就自動轉換為同類型的指針。因此,盡管函數GetSize的參數data被聲明為數組,但他會退化為指針,size3的結果為8;
題目1:找出數組中的重復的數字
在一個長度為n的數組里的所有數字都在0~n-1的范圍內。數組中某些數字是重復的,但不知道有幾個數字重復了,也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。
例如:如果輸入長度為7的數組{2,3,1,0,2,5,3},那么對應的輸出是重復的數字2或者3。
思路:
暴力的解法
1.排序 時間復雜度O(nlogn);
2.哈希表 空間復雜度O(n);
更好的解決方法:
總結
以上是生活随笔為你收集整理的剑指offer-数组中的重复的数字-p39的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天马宣布为荣耀 100 系列手机供应屏幕
- 下一篇: c语言——什么时候使用getchar()