Java实现袜子配对功能时for-each循环输出差异原因求解
两段代码输出不一致的原因
两段代码的hash数组存储逻辑完全不同,核心错误是示例2对计数逻辑的理解偏差:
- 示例1的
hash数组索引对应袜子颜色值,数组元素值对应该颜色的袜子总数量,是符合题目要求的正确统计逻辑。
若输入测试用例的袜子颜色序列为[1,2,1,2,3,1,2],统计后hash[1]=3、hash[2]=3、hash[3]=1,其余位置值均为0。计算总对数时:3/2 + 3/2 + 1/2 + 其他0值 = 1+1+0 = 2,和输出结果一致。
- 示例2的
hash数组直接存储了每只袜子的颜色值,没有做按颜色计数的步骤,完全不符合题目的统计逻辑。
它实际是把每个颜色值单独除以2再求和:1/2 + 2/2 + 1/2 + 2/2 + 3/2 + 1/2 + 2/2 = 0+1+0+1+1+0+1 =4,和输出结果一致,但这个结果和袜子配对统计没有任何关系。
内容的提问来源于stack exchange,提问作者VIJ03
相关产品推荐
相关产品推荐

