今天我注册了力扣的账号。虽然数据结构和算法我从没学过,但一直听说“程序 = 数据结构 + 算法”,这么牛的东西,我一直都想接触下,于是我注册了账号,进入了新手村。我做了第一道算法题:输入一个数组,输出另一个数组,这输出的数组在和输入的数组下标一样的时候,输出数组这一项等于输入数组此项和前面所有项之和。例如:输入--[1,2,3,4,5,6]输出--[1,3,6,10,15,21],实现这个函数。
小伙伴们可以先想想怎么做,我这里给出两种解法。
let arr = [1,2,3,4,5,6]
function add(arr) {
let newArr = arr.map((e, i) => {
//首先判断如果是第一项,就等于它本身
if(i === 0) {
retrun e;
}
//接下来就是不是第一项的元素了
//while
let count = arr[0];
let num = 1;
while(num <= i){
count = count + arr[num];
num++;
}
return count;
});
return newArr;
}
这第一种办法用while循环,接下来用第二种方法,for循环
let arr = [3,2,1];
function add(arr) {
let newArr = arr.map((e, i) => {
//首先判断如果是第一项,就等于它本身
if(i === 0) {
retrun e;
}
//for循环
let count = arr[0];
for(let a = 1; a <= i; a++) {
count = count + arr[a];
}
return count;
});
return newArr;
}
路漫漫,其修远兮,吾将上下而求索。