剑指offer - 数组中重复的数字

数组中重复的数字

http://www.nowcoder.com/questionTerminal/623a5ac0ea5b4e5f95552655361ae0a8

Method 1 Time:O(n) Space:O(1)
Method 2 Time:O(n) Space:O(n)
Special Test Case: [6,3,2,0,2,5,0]

public class Solution {
    public boolean duplicate(int numbers[],int length,int [] duplication) {
        if(numbers == null || length <= 0) {
           return false;
        }
        for(int i = 0; i < length;i++) {
            int index = numbers[i];
            if(index < 0 || index >= length) {
                return false;
            }
            if(index == i) {
                continue;
            }
            if(numbers[index] == index) {
                duplication[0] = index;
                return true;
            }else{
                numbers[i] = numbers[index];
                numbers[index] = index; // swap once
            }
        }
        return false;
    }
}

import java.util.*;
public class Solution {
    public boolean duplicate(int numbers[],int length,int [] duplication) {
        if(numbers == null || length <= 0) {
           return false;
        }
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        for(int i = 0;i < length;i++) {
            int val = numbers[i];
            if(val < 0 || val >= length) {
                break;
            }else if(set.contains(val)) {
                duplication[0] = val;
                return true;
            }
            set.add(val);
        }
        return false;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务