企业公司网站,东阳营销型网站建设品牌,上海网站公司排名,企业邮箱域名怎么写数组归约运算 题目题解 题目
给定一个整数数组 nums、一个 reducer 函数 fn 和一个初始值 init#xff0c;返回通过依次对数组的每个元素执行 fn 函数得到的最终结果。
通过以下操作实现这个结果#xff1a;val fn(init, nums[0])#xff0c;val fn(val, nums[1])#… 数组归约运算 题目题解 题目
给定一个整数数组 nums、一个 reducer 函数 fn 和一个初始值 init返回通过依次对数组的每个元素执行 fn 函数得到的最终结果。
通过以下操作实现这个结果val fn(init, nums[0])val fn(val, nums[1])val fn(val, nums[2])… 直到处理数组中的每个元素。然后返回 val 的最终值。
如果数组的长度为 0则函数应返回 init。
请你在不使用内置数组方法的 Array.reduce 前提下解决这个问题。 示例 1 输入 nums [1,2,3,4] fn function sum(accum, curr) { return accum curr; }
init 0
输出10
解释
初始值为 init0 。
(0) nums[0] 1
(1) nums[1] 3
(3) nums[2] 6
(6) nums[3] 10
Val 最终值为 10。示例 2 输入 nums [1,2,3,4] fn function sum(accum, curr) { return accum curr * curr; }
init 100
输出130
解释
初始值为 init100 。
(100) nums[0]^2 101
(101) nums[1]^2 105
(105) nums[2]^2 114
(114) nums[3]^2 130
Val 最终值为 130。示例3: 输入 nums [] fn function sum(accum, curr) { return 0; }
init 25
输出25
解释这是一个空数组所以返回 init 。提示
0 nums.length 1000
0 nums[i] 1000
0 init 1000题解 普通判断循环, 很简单的题目一看就会看不明白建议重开 /*** param {number[]} nums* param {Function} fn* param {number} init* return {number}*/
var reduce function(nums, fn, init) {if (!nums.length) return init;var val init;for(let i 0; i nums.length; i) {val fn(val, nums[i])}return val;
};作者符韬
链接https://leetcode.cn/problems/array-reduce-transformation/solutions/2595870/pu-tong-pan-duan-xun-huan-by-fe1lgktmuj-hgui/
来源力扣LeetCode
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。