b [a [i] - 1] ++的含义是什么?

时间:2017-10-02 20:27:11

标签: java

我刚刚发现了一段我不理解的代码。

b[a[i] - 1]++;

这是背景。

int firstDuplicate(int[] a) {
        int[] b = new int[a.length];
        for (int i = 0; i < a.length; i++) {
            b[a[i] - 1]++;            
            if (b[a[i] - 1] > 1) {
                return a[i];
            }
        }
        return -1;
    }

数组是

int test[] = {2, 3, 3, 1, 5, 2};

可以请有人向我解释一下吗?

2 个答案:

答案 0 :(得分:0)

a[]是一个整数数组。

b[a[i]]表示数组b中的索引为a[i]

e.g。

a[] = {1, 2, 3} & b[] = {10, 20, 30}

此处b[a[0]]会为您20,因为a[0]返回1b[1]20

在您的代码中,b[a[i] - 1]++等同于b[a[i] - 1] = b[a[i] - 1] + 1

从我的...如果i = 0

b[a[0] - 1]会将10作为输出。

而且b[a[0] - 1]++会将b[0]的值修改为11

答案 1 :(得分:0)

阵列&#34; a&#34;必须包含正整数,不小于1且不大于&#34; a.length&#34;。

此代码创建一个数组&#34; b&#34;跟踪每个整数的数量。

因此,例如b [0]表示1的数量,b [1]表示2的数量,依此类推。

通过执行b [...] ++,您将增加该位置的计数。