【问题标题】:incrementing the counter of a for-loop递增for循环的计数器
【发布时间】:2020-07-26 09:29:52
【问题描述】:

我在Hakerrank challenge 中进行了一次练习,在该练习中我使用了基本的 for 循环来迭代数组,然后我考虑根据条件增加循环计数器。这是我的解决方案:

public static int sockMerchant(int n, int[] ar) {
    int pairs = 0;
    Arrays.sort(ar);
    if (n % 2 != 0) n = n - 1;
    for (int i = 0; i < n - 1; i++) {
        if (ar[i] == ar[i + 1]) {
            ++pairs;
            // incrementing the loop counter
            i++;
        }
    }
    return pairs;
}

我想知道在增加 for 循环计数器时是否有任何事件或问题。编写代码需要注意的事项有什么想法吗?

【问题讨论】:

  • 有些人投票的速度比他们自己的影子还快 ;-) 你算法 (n--) 会错过,例如,[ 1, 2, 2 ]... 此外,减少投票的数量并没有太大的好处循环 1,在这里。

标签: java algorithm for-loop


【解决方案1】:

并非所有编程语言都允许修改循环的索引。如果是这种情况,请使用适合该语言或惯用的任何方法。

但是,Java 允许修改循环的索引。

看看Greg Hewgill的详细回答。

https://stackoverflow.com/a/9012318/13651978

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2020-08-03
    • 2016-08-27
    • 2019-01-17
    相关资源
    最近更新 更多