【问题标题】:Finding duplicate elements in an array without using nested loops [duplicate]在不使用嵌套循环的情况下查找数组中的重复元素[重复]
【发布时间】:2015-10-07 22:08:47
【问题描述】:

我最近接受了一次采访,其中包括以下问题。请帮助解决可能的问题。

在 Java 中编写一个方法来查找整数数组中的重复元素,而无需使用嵌套循环(for/while/do while 等),也无需使用库函数或标准 API。

【问题讨论】:

  • 你的尝试是什么? (提示使用recu.....)
  • 你可以使用集合框架吗?arraylist?
  • @DevChoudhary 面试官是说你根本不能使用循环,还是说你不能嵌套循环?
  • 这与上述问题有何重复?这个问题要求所有重复的元素,标记为重复的问题只要求一个元素。两者区别非常明显。

标签: java arrays loops


【解决方案1】:

嘿,下面的解决方案复杂度为 O(n) 并且工作正常。检查它是否有帮助。

public class Main {
    public static void main(String[] args) {
        int a[] = new int[]{10,3,5,10,5,4,6};
        String distinctElement="";
        String repetitiveTerms="";
        for(int i=0;i<a.length;i++){
            if(i==0){
                distinctElement+=a[i]+" ";
            }
            else if(distinctElement.contains(""+a[i])){
                repetitiveTerms+=a[i]+" ";
            }
            else{
                distinctElement+=a[i]+" ";
            }
        }

    }
}

【讨论】:

  • 哪部分不使用嵌套循环(for/while/do while等)说你可以使用循环?
  • 如果您可以使用循环,这并不是什么挑战。我对这个问题的理解是你不能使用循环。让我们等待OP澄清。
  • 我认为允许循环但不能嵌套
  • 好的,但“嵌套”对我们来说很清楚。所以除非你确定,否则你不应该降级答案
  • @Fast Snail:不,不会有问题。如果你仔细看代码,我在元素之间插入了空格,所以 1 0 不能是 10。我希望这能澄清。
猜你喜欢
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 2022-10-07
相关资源
最近更新 更多