日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1数组中重复的数字-面试题目3

發(fā)布時間:2024/7/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1数组中重复的数字-面试题目3 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題外話:找算法,在線編程在面試中占比50%。

聽說上面的題外話,依舊重拾艱難困苦之心,翻開劍指offer按照題目類型以及隨機抽取,還是決定開始好好的看看劍指offer的在線編程66道題。沒有信心的跟我一起做下去,歡迎加入古月家族,也可以一起約定每天做那兩道題,一起克服這個編程關(guān)。 當(dāng)然更歡迎,高手糾正以及指導(dǎo),嘿嘿。

數(shù)組中重復(fù)的數(shù)字-面試題目3

題目要求:一個數(shù)組長度為n, 數(shù)字為0到n-1的數(shù)字,判斷數(shù)組中是否存在重復(fù)的數(shù)字。

1第一種,暴力法,按照最簡單的思路就是對數(shù)據(jù)進行排序,然后查找重復(fù)的數(shù)字就很簡單的問題的啦。

2 第二種:就是哈希表,利用索引值即位置,以及對應(yīng)位置上的值是否相等去判斷數(shù)組是否存在重復(fù)的數(shù)字。

先假設(shè)數(shù)組為numbers。我覺的在數(shù)組中主要的三個因素就是: 位置 i, 對應(yīng)位置元素numbers[i],以及有可能鳩占鵲巢的numbers[numbers[i]].

SoSoSoSo!第一步就是判斷是否每個元素是否各司其職,即 i==numbers[i].
如果上述等式不成立,則需要將這些換回到原來的位置。

因此,這就涉及到numbers[i]和numbers[numbers[i]] 兩者之間的pk,判斷兩者是否存在爭奪,也許就是沒有關(guān)系。
第一步,即是判斷兩者是否相等,numbers[i] == numbers[numbers[i]] 。如果兩者相等,將二者之一的值保留,并輸出bool值 true。
第二步: 如果兩者不相等,則需要將兩者進行交換。swap (numbers[i] , numbers[numbers[i]).
\
答案:

class Solution {
public:
bool duplicate(int numbers[], int length, int* duplication) {
if(numbers == nullptr || length <= 0)
return false;

for(int i = 0; i < length; ++i) {while(numbers[i] != i) {if(numbers[i] == numbers[numbers[i]]) {*duplication = numbers[i];return true;}// 交換numbers[i]和numbers[numbers[i]]swap(numbers[i], numbers[numbers[i]]);}}return false; }

};

總結(jié)

以上是生活随笔為你收集整理的1数组中重复的数字-面试题目3的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。