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

请教:CodeSignal分组体重题解中的'&'运算符作用是什么?

解释题解中的&符号作用

题目要求

有若干人排成一排,需分成两队。第1人进入队伍1,第2人进入队伍2,第3人再进队伍1,第4人进队伍2,依此类推。给定一个正整数数组(人们的体重),返回一个含两个整数的数组,第一个元素是队伍1总重量,第二个是队伍2总重量。
示例:当a = [50, 60, 60, 45, 70]时,输出应为solution(a) = [180, 105]

题解代码

(a) => a.reduce((p,v,i) => (p[i&1]+=v,p), [0,0])

i&1的具体作用

  • &是JavaScript的按位与运算符,它会把两个数转成二进制后逐位做与运算。
  • i&1是用来判断数组索引i的奇偶性:
    • 若i是偶数(比如0、2、4...),二进制最后一位是0,和1(二进制01)按位与结果为0,对应累加进p[0](队伍1的总重量)。
    • 若i是奇数(比如1、3、5...),二进制最后一位是1,和1按位与结果为1,对应累加进p[1](队伍2的总重量)。

整体逻辑拆解

  • 初始值[0,0]是两队的初始总重量。
  • 遍历数组时,每一项的体重v根据索引奇偶性,加到对应队伍的总重量里。
  • 遍历结束后返回的p就是两队最终的总重量,完全匹配题目要求。

内容的提问来源于stack exchange,提问作者Fernando Guzman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:20:25