zl程序教程

您现在的位置是:首页 >  后端

当前栏目

7kyu (难度系数kyu阶段数值越大难度越低) 数组分组及求和

数组 分组 阶段 数值 求和 难度 系数
2023-09-27 14:20:09 时间


几个人排成一排,分成两队。
第一个人进入一队,第二个人进入第二队,第三个人进入第一队,以此类推。


给定一个正整数的数组(人的权重),返回两个整数的新数组/元组,
其中第一个是第1组的总重量,第二个是第2组的总重量。
数组大小至少为1.所有数字都是正数。

function rowWeights(array){
//your code here
let a = 0;
let b = 0;
for (let i=0;i<array.length;i++) {
if (i % 2 == 0) {
a += array[i];
} else {
b += array[i];
}
}
return new Array(a, b);

}

大神的解:

function rowWeights(array){
var arr = [0, 0];
for (var i = 0; i < array.length; i++) {
i % 2 == 0 ? arr[0] += array[i] : arr[1] += array[i];
}
return arr;
}

function rowWeights(array){
  let t1 = array.filter((x, i)=>i%2==0).reduce((a,item)=>a+item,0);
  let t2 = array.filter((x, i)=>i%2!=0).reduce((a,item)=>a+item,0);
  
  return [t1, t2]
}
rowWeights=arr=>arr.reduce((a,b,i)=>(a[i%2]+=b,a),[0,0])


const rowWeights = arr => arr.reduce((a, w, i) => (a[i%2]+=w, a), [0, 0]);
const rowWeights = a => a.reduce(([s1,s2],n,i)=> i%2 ? [s1,s2+n]: [s1+n, s2] , [0,0])
function rowWeights(array) {
  return array.reduce((t, x, i) => {
    t[i % 2] += x;
    return t;
  }, [0, 0]);
}
function rowWeights(array) {
  return array.reduce((a, b, i) => (a[i%2] += b, a), [0, 0]);
}
function rowWeights(a,f=0,s=0){
  return (a.map((x,i)=>i%2?s+=x:f+=x),[f,s]);
}