You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组去重逻辑疑问:为何在外部循环中判断i==j?

解释Java代码中i==j的判断逻辑

这段代码的核心是找出数组中首次出现的所有不重复元素,i==j的作用就是判断当前元素arr[i]是否是第一次出现,拆解逻辑如下:

  1. 内部循环的作用
    内部循环for(j=0;j<i;j++)会拿当前元素arr[i]和它之前的所有元素(索引从0到i-1)逐一比对:

    • 如果找到和arr[i]相等的元素,立刻执行break跳出内部循环,此时j的数值会停在小于i的位置(循环没走完就终止了)。
    • 如果遍历完所有之前的元素都没找到相等值,内部循环会正常执行到j == i时终止(因为循环条件是j < i,当j增加到等于i时,循环不再执行)。
  2. i==j的判断逻辑
    当i == j时,说明内部循环完整执行完毕——也就是arr[i]和它之前的所有元素都不重复,是第一次出现的新元素,这时候就会打印该元素并增加计数。

举几个具体例子辅助理解:

  • 当i=0(数组第一个元素10):内部循环的条件j < 0不成立,循环直接终止,j保持初始值0,此时i==j成立,打印10,count变为1。
  • 当i=1(数组第二个元素10):内部循环j=0时,arr[1] == arr[0],执行break,j停在0,此时i=1≠j=0,不执行打印和计数。
  • 当i=2(数组第三个元素20):内部循环j=0和j=1时,arr[2]和前两个元素都不相等,循环正常结束后j=2,i==j成立,打印20,count变为2。

内容的提问来源于stack exchange,提问作者Nikhil Kanojia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:35:10