287 尋找重複數

2022-05-08 22:15:08 字數 512 閱讀 1196

官方題解給了個雙指標的方法,估計面試也不會,先不看了。

正常方法:

1.排序

2.用set或者直接在原vector上記錄出現的值

3.二分,這裡是對資料範圍2分。令n為vector長度,則所有資料都在1到n-1的範圍內。取le=1,ri=n-1,mi=n/2。然後遍歷整個vector,計算在[le,mi]或者[mi+1,ri]的範圍內出現的數字次數。比如計算[le,mi]範圍內數字出現的次數大於mi-le+1,說明[le,mi]範圍內的數字一定至少有乙個是不止出現一次的。

1

class

solution 16}

17if(count<=right-mid+1)18

21else

2225}26

return

left;27}

28 };

287 尋找重複數

給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。示例 1 輸入 1,3,4,2,2 輸出 2 示例 2 輸入 3,1,3,4,2 輸出 3 說明 不能更改原陣列 假設陣列是唯讀的 只能...

287 尋找重複數

給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。示例 1 輸入 1,3,4,2,2 輸出 2示例 2 輸入 3,1,3,4,2 輸出 3說明 不能更改原陣列 假設陣列是唯讀的 只能使用...

287 尋找重複數

287.尋找重複數 給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。示例 1 輸入 1,3,4,2,2 輸出 2 示例 2 輸入 3,1,3,4,2 輸出 3 說明 不能更改原陣列 假...