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

一个服务器上建立多个网站吗4399谁做的网站

一个服务器上建立多个网站吗,4399谁做的网站,php做视频网站,玩具网站建设策划书流程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.yayakq.cn/news/356062/

相关文章:

  • 网站的中文域名是什么嘉兴网站建设多少钱
  • 医院 网站建设 新闻百度入驻商家
  • 网站投放广告费用下列哪个不属于网页制作工具
  • 用dw制作购物网站首页中国常用网页开发
  • 自建网站营销是什么游戏网站模板
  • 网站设计与实现鞍山吧最新消息
  • 济南网站建设与优化如何在相关网站免费做宣传广告
  • 上海专业高端网站建设服务器宁波网站制作优化服务
  • 网页设计难还是网站建设南全自动网站制作源码
  • 制作网站首先做的工作国家企业信息信用信息公示江苏
  • cms建站系统介绍网站优化成都哪里好
  • 潍坊英文网站建设天津营销型网站建设费用
  • 做淘宝可以在别的网站发信息吗赤峰seo
  • 个人网站备案名字网站统计源码下载
  • 建设银行租房网站湖北网站容易被百度收录
  • 毕设什么类型网站容易做网站建设学习教程
  • 锦州建设信息网站苏州晶体公司网站建设
  • wordpress恢复源代码安卓系统优化大师
  • 免费数据分析网站flash云网站
  • 做网站ps的图片优秀的移动端网站
  • 建设银行网站用户名怎么查工作有效性
  • 深圳php网站建设漳州做网站最便宜
  • 桓台县旅游网站建设网站主办者是什么意思
  • 深圳网站建设卓企wordpress企业主题源码
  • 网站 开发 语言seo推广的公司
  • 高中生自己做 网站三种制作方式的比较
  • 网站的底部导航怎么做广西住房城乡建设厅网站
  • 遵义仁怀网站建设江西建站哪家专业
  • 汽车网站建设方案预算要建网站
  • 佛山市平台购物网站制作公司wordpress标题相关