Leetcode--442. 数组中重复的数据
給定一個(gè)整數(shù)數(shù)組 a,其中1 ≤ a[i] ≤ n (n為數(shù)組長(zhǎng)度), 其中有些元素出現(xiàn)兩次而其他元素出現(xiàn)一次。
找到所有出現(xiàn)兩次的元素。
你可以不用到任何額外空間并在O(n)時(shí)間復(fù)雜度內(nèi)解決這個(gè)問(wèn)題嗎?
示例:
輸入:
 [4,3,2,7,8,2,3,1]
輸出:
 [2,3]
思路:利用好1 ≤ a[i] ≤ n
把nums[i]放到對(duì)應(yīng)的i上,最后不在對(duì)應(yīng)位置的就是出現(xiàn)兩次的。
提交的代碼:
class?Solution?{
????public?List<Integer>?findDuplicates(int[]?nums)?{
????????List<Integer>?list?=?new?ArrayList<>();
????????int?t;
????????for(int?i=0;i<nums.length;)
????????{
????????????if(nums[i]!=i+1&&nums[nums[i]-1]!=nums[i])
????????????{
????????????????t?=?nums[nums[i]-1];
????????????????nums[nums[i]-1]?=?nums[i];
????????????????nums[i]?=?t;
????????????}
????????????else
????????????{
????????????????i++;
????????????}
????????}
????????for(int?i=0;i<nums.length;i++)
????????{
????????????if(nums[i]!=i+1)
????????????{
????????????????list.add(nums[i]);
????????????}
????????}
????????return?list;
????}
}
總結(jié)
以上是生活随笔為你收集整理的Leetcode--442. 数组中重复的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
                            
                        - 上一篇: 动态规划--Leetcode121.买卖
 - 下一篇: 第一章 计算机网络 5 分层结构/协议/