找出陣列中重複的數字。
在乙個長度為 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 因為陣列中...