陣列中重複的數字

2021-10-05 03:03:20 字數 836 閱讀 2200

找出陣列中重複的數字。

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0~n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。

示例 1:

輸入:

[2, 3, 1, 0, 2, 5, 3]

輸出:2 或 3

限制:

2 <= n <= 100000

這道題看起來難度不大,其實我覺得要分為兩個方面進行考慮。時間要求或者空間要求。

思路1:因為是在陣列中找出任意乙個重複的數字,我其實立馬就想到了用 集合框架 set,因為set中的元素是不允許重複的,當新增失敗時,說明這個數字就是重複的直接返回就可。

思路2:我們可以排序陣列,如何相鄰的兩個元素是相同的,說明這個數字就是重複元素。

思路1:

public int findrepeatnumber(int nums) 

}return -1;

}

時間複雜度:o(n)

空間複雜度:o(n)

思路2:

public int findrepeatnumber(int nums) 

}return -1;

}

時間複雜度:o(n * log2n) + o(n) = o(n * log2n)(以2為底)

空間複雜度:o(n)

關於陣列的題目,不僅要考慮邊界,是否越界。還要考慮時間複雜度,空間複雜度這些條件等。

陣列 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。思路 python 實現 an highlighted block ...

陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道哪幾個 數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。例如 如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。include iostream using namespace ...

陣列中重複的數字

題目 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。思路 用雜湊表解決的時間複雜度和空間複雜度為o n 因為陣列中...