【发布时间】: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,在这里。