首页 > 考试 > 其他 > 正文
【LeetCode】 442. Find All Duplicates in an Array
2017-01-07       个评论    来源:LSF_Kevin的博客  
收藏    我要投稿

Given an array of integers, 1 ≤ a[i] ≤n(n= size of array), some elements appeartwiceand others appearonce.

Find all the elements that appeartwicein this array.

Could you do it without extra space and in O(n) runtime?

 

Example:

Input:
[4,3,2,7,8,2,3,1]

Output:
[2,3]

 

 

public class Solution {
    public List findDuplicates(int[] nums) {
        List res = new ArrayList<>();
        for (int i = 0; i < nums.length; i++) {
            int index = Math.abs(nums[i]) - 1;
            if (nums[index] < 0) {
                res.add(Math.abs(index + 1));
            } else {
                nums[index] = -nums[index];
            }
        }
        return res;
    }
}

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 LeetCode 编程题
上一篇:BZOJ 1336&1337最小圆覆盖
下一篇:【LeetCode】 167. Two Sum II - Input array is sorted
相关文章
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站