尋找重複數

2021-10-01 05:12:31 字數 773 閱讀 1774

出自 leetcode 287,

給定乙個包含 n + 1 個整數的陣列 nums,其數字都在 1 到 n 之間(包括 1 和 n),可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。

示例 1:

輸入: [1,3,4,2,2]

輸出: 2

示例 2:

輸入: [3,1,3,4,2]

輸出: 3

我想到一種和標準答案思路不同,且符合 題目要求的方法,即 o(n)時間, o(1)空間的方法, 統計位的出現頻率即可, 如果某個位上 1 的數量超過了 1-n中這個位上1的所有出現次數,那麼說明重複的數在這個位上為1

全部**如下:

#include

"haithink_common.h"

intfindduplicate

(vector<

int>

& nums)

}int cnt2 =0;

for(

int j =

0; j < len; j++)}

if(cnt2 > cnt)

}return res;

}int

main()

;//std::sort(nums.begin(), nums.end());

output

(nums)

;output

(findduplicate

(nums));

return0;

}

尋找重複數

leetcode演算法 題目 1.二分查詢 注意題目中的整數範圍1 len 1 假設陣列中的元素已經排好了順序 如果小於等於mid的個數大於mid的值,說明目標值在1 mid中間 如果小於等於mid的個數小於mid的值,說明目標值在mid right中間 class solution return ...

尋找重複數

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

LeetCode 尋找重複數

給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重複的整數,找出這個重複的數。給定乙個包含 n 1 個整數的陣列 nums,其數字都在 1 到 n 之間 包括 1 和 n 可知至少存在乙個重複的整數。假設只有乙個重...