当前位置: 首页 > news >正文

怎么样在公司配置服务器做网站seo入门课程

怎么样在公司配置服务器做网站,seo入门课程,建立网站根目录下,wordpress 如何修改模板底部leetcode 2625 扁平化嵌套数组 请你编写一个函数,它接收一个 多维数组 arr 和它的深度 n ,并返回该数组的 扁平化 后的结果。 多维数组 是一种包含整数或其他 多维数组 的递归数据结构。 数组 扁平化 是对数组的一种操作,定义是将原数组部…

leetcode 2625 扁平化嵌套数组

请你编写一个函数,它接收一个 多维数组 arr 和它的深度 n ,并返回该数组的 扁平化 后的结果。

多维数组 是一种包含整数或其他 多维数组 的递归数据结构。

数组 扁平化 是对数组的一种操作,定义是将原数组部分或全部子数组删除,并替换为该子数组中的实际元素。只有当嵌套的数组深度大于 n 时,才应该执行扁平化操作。第一层数组中元素的深度被认为是 0。

请在没有使用内置方法 Array.flat 的前提下解决这个问题。

示例 1:

输入
arr = [1, 2, 3, [4, 5, 6], [7, 8, [9, 10, 11], 12], [13, 14, 15]]
n = 0
输出
[1, 2, 3, [4, 5, 6], [7, 8, [9, 10, 11], 12], [13, 14, 15]]解释
传递深度 n=0 的多维数组将始终得到原始数组。这是因为 子数组(0) 的最小可能的深度不小于 n=0 。因此,任何子数组都不应该被平面化。

示例 2:

输入
arr = [1, 2, 3, [4, 5, 6], [7, 8, [9, 10, 11], 12], [13, 14, 15]]
n = 1
输出
[1, 2, 3, 4, 5, 6, 7, 8, [9, 10, 11], 12, 13, 14, 15]解释
以 4 、7 和 13 开头的子数组都被扁平化了,这是因为它们的深度为 0 , 而 0 小于 1 。然而 [9,10,11] 其深度为 1 ,所以未被扁平化。

示例 3:

输入
arr = [[1, 2, 3], [4, 5, 6], [7, 8, [9, 10, 11], 12], [13, 14, 15]]
n = 2
输出
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]解释
所有子数组的最大深度都为 1 。因此,它们都被扁平化了。

两种方法,一种递归一种循环

递归↓(测试用例通过127/131 会超时)

var flat = function (arr, n) {if(n == 0)return arrresult = []for(let i = 0; i < arr.length; i ++){if(Array.isArray(arr[i])){result = result.concat(arr[i])}else{result.push(arr[i])}}return flat(result, n-1)
};

循环↓ 依旧超时,很无语。。

var flat = function (arr, n) {while(n > 0){result = []for(let i = 0; i < arr.length; i ++){if(Array.isArray(arr[i])){result = result.concat(arr[i])}else{result.push(arr[i])}}arr = resultn --}return arr
};

看题解吧,原来递归只递归子数组,而不是一整个重新递归。。学到了

var flat = function (arr, n) {let res = [];const flattening = (nums, l) => {for (const num of nums) {if (Array.isArray(num) && l > 0) {flattening(num, l - 1);} else {res.push(num);}}}flattening(arr, n);return res;
};

leetcode 2626 数组归约运算

请你编写一个函数,它的参数为一个整数数组 nums 、一个计算函数 fn 和初始值init 。返回一个数组 归约后 的值。

你可以定义一个数组 归约后 的值,然后应用以下操作: 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
解释:
初始值为 init=0 。
(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
解释:
初始值为 init=100 。
(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 。

 就是非常无脑

var reduce = function(nums, fn, init) {result = initfor(let i = 0; i < nums.length; i ++){result = fn(result, nums[i])}return result
};

leetcode 2627 函数防抖

请你编写一个函数,接收参数为另一个函数和一个以毫秒为单位的时间 t ,并返回该函数的 函数防抖 后的结果。

函数防抖 方法是一个函数,它的执行被延迟了 t 毫秒,如果在这个时间窗口内再次调用它,它的执行将被取消。你编写的防抖函数也应该接收传递的参数。

例如,假设 t = 50ms ,函数分别在 30ms 、 60ms 和 100ms 时调用。前两个函数调用将被取消,第三个函数调用将在 150ms 执行。如果改为 t = 35ms ,则第一个调用将被取消,第二个调用将在 95ms 执行,第三个调用将在 135ms 执行。

 没啥好说的,老生常谈的问题,注意timer千万不能定义到return的函数内部

var debounce = function(fn, t) {let timerreturn function(...args) {clearTimeout(timer)timer = setTimeout(() => {fn(...args)}, t)}
};

http://www.15wanjia.com/news/165602.html

相关文章:

  • 幕墙设计培训乡网站建设设计平台化
  • 大型门户网站最担心的威胁是河南省最新任命
  • 手机网站引导页js西安网站优化招聘网
  • 海外免费网站推广甘肃古典建设集团有限公司网站
  • 青海市建设局网站云服务器 虚拟机
  • 网站如何做反爬营业推广方案怎么写
  • 农业公司网站建设做网站总结
  • php开发网站后台wordpress 设置icon
  • 网站后台登录代码职友集 一家做公司点评的网站
  • 房县建设局网站上海企业公示信息查询系统
  • 自己做外贸开通什么网站站长工具外链查询
  • 小型购物网站模板怎么把网页做成app
  • thinkphp cms开源系统成都官网优化推广
  • 手机网站关键免费网站认证
  • 做婚庆网站的功能定位深汕特别合作区事务员待遇
  • 设计师网站网站建设技术架构和语言
  • 长春专业做网站的公司排名做网站系统用什么语言
  • 甘肃网站备案网站网页设计制作
  • 西宁网站设计企业设计在线观看免费2014
  • 安全网站建设seo快速排名培训
  • 做网站的企业文化怎么写wordpress更新机制
  • 手表网站 海马300米潜水表wordpress文章固定字段
  • 手机端网站开发页做商城网站技术要点
  • 建设部网站监理公告w7自己做网站
  • 如何查询网站的域名注册网站做app开发工具
  • 深圳建立企业网站网站网站制作服务
  • 怎样做酒店网站ppt哪些在线网站可以做系统进化树
  • 辽宁网站建设排名网站开发交付
  • php自己写框架做网站郑州建设网站制作公司
  • 免费建网站域名申请好后 如何建设网站