java - 大小为 2N 的数组中的 N 个重复元素

标签 java

在大小为 2N 的数组 A 中,有 N+1 个唯一元素,并且这些元素中恰好有一个被重复 N 次.

返回重复N次的元素。

我正在尝试解决这个算法,但我似乎无法弄清楚为什么我的计数不断重置。任何意见都将不胜感激。

public class RepeatedElementInSize2NArray {

    public static void main(String[] args) {
        int[] inputArr = new int[] {1,2,3,3};
        int repeatedElement = findRepeatedElement(inputArr);
        System.out.println("Repeated element : "+repeatedElement);

    }

    public static int findRepeatedElement(int[] inputArr) {
        Map<Integer, Integer> repeatedElementMap = new HashMap<Integer, Integer>();
        int count = 0;
        for (int i = 0; i < inputArr.length; i++) {
            if (repeatedElementMap.containsKey(inputArr[i])) {
                count = repeatedElementMap.get(inputArr[i]);
                repeatedElementMap.put(inputArr[i], count++);
            } else {
                repeatedElementMap.put(inputArr[i], 1);
            }
        }
        int length = inputArr.length;
        int repeatedElement = 0;
        if (repeatedElementMap.containsValue(length % 2)) {
            repeatedElement = repeatedElementMap.get(length % 2);
        }
        return repeatedElement;

    }

}

最佳答案

应该是++count而不是count++在线repeatedElementMap.put(inputArr[i], count++); 原因是后者先返回count的值,然后再增加该值,而前者先增加该值,然后再返回。

关于java - 大小为 2N 的数组中的 N 个重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56823054/

相关文章:

java - 为什么我的编译类重命名了它的方法局部变量?

java - 数组索引超出范围

java - 从 Java bean 到 Web 服务的 SSL 连接问题

java - 仅更新 hibernate 中对象的非空字段

Java - System.out 对性能的影响

java - JTable 单元格跨度合并

java - 分发我的 java 应用程序,如何管理目录

java - 排序松散可比数据的算法?

java - Android访问文件系统Nexus 7

java - 从 Illustrator 到 Java 获取多边形的最简单方法?