首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2022-08-24:给定一个长度3N数组,其中最多含有0、1、2三种值, 你可以把任何一个连续区间上数组,全变成0、1、2一种, 目的让0、1、2

2022-08-24:给定一个长度3N数组,其中最多含有0、1、2三种值,你可以把任何一个连续区间上数组,全变成0、1、2一种,目的让0、1、2三种数字个数都是N。返回最小变化次数。...统计0,1,2扣去N/3个数之和。比如1,1,1,1有3个,多了两个;0和2都是0个,不统计;所以结果2。时间复杂度:O(N)。代码用rust编写。...{ return time; } else { if time == 2 { return 3; } let mut...// 只有一种数个数小于m return if once(arr, &mut cnt, m) { 1 } else { 2 }; }}// 只有一种数少于N/3fn once...个// 1 -> 10个// 2 -> 10个// ==========// 0 -> 7个// 2 -> 12个 1 -> 11个// 多2// 少数 0fn modify(arr: &mut

74710

美团前端一面高频面试题

1、Map键值对,Set值得集合,当然键和值可以是任何得值2、Map可以通过get方法获取值,set不能因为它只有值3、都能通过迭代器进行for...of 遍历4、Set唯一可以做数组去重...GET长度值 = URL(2083)- (你Domain+Path)-22get请求?...{ console.log(args)}mutiple(1, 2, 3, 4) // [1, 2, 3, 4]这就是 … rest运算符又一层威力了,它可以把函数多个入参收敛进一个数组里。...什么物理像素,逻辑像素和像素密度,为什么在移动端开发时需要用到@3x, @2x这种图片?..., 不能修改对象 return res;}apply描述:与 call 类似,唯一区别就是 call 传入不固定个数参数, apply 传入一个参数数组或类数组

62730
您找到你想要的搜索结果了吗?
是的
没有找到

前端高频面试题(六)(附答案)

1、意外全局变量:由于使用未声明变量,意外创建了一个全局变量,而使这个变量一直留在内存无法被回收2、被遗忘计时器或回调函数:设置了 setInterval 定时器,忘记取消它,如果循环函数有对外部变量引用的话...但是它有一个很大问题就是创建出来对象无法和某个类型联系起来,它只是简单封装了复用代码,没有建立起对象和类型间关系。(2)第二种构造函数模式。...为尽快完成首次渲染,我们需要最大限度减小以下三种可变因素:(1)关键资源数量。(2)关键路径长度。(3)关键字节数量。关键资源可能阻止网页首次渲染资源。...冒泡排序--时间复杂度 n^2题目描述:实现一个冒泡排序实现代码如下:function bubbleSort(arr) { // 缓存数组长度 const len = arr.length; //...return arr;}// console.log(bubbleSort([3, 6, 2, 4, 1]));CSS 优化和提高性能方法有哪些?

44830

2023秋招前端面试必会面试题_2023-03-15

方法2:当页面出现业务定义错误码时,则认为白屏。比如“网络或服务异常”。 方法3:当页面出现业务定义特征值时,则认为白屏。比如“数据加载”。...总的来说,render 阶段在执行过程中允许被打断, commit 阶段则总是同步执行为什么这样设计呢?...偏偏在面试场景下,10 个人里面有 9 个都走这条歧路,最后9个人里面自然没有一个能自圆其说,实在让人惋惜。为什么需要浏览器缓存?...数组扁平化题目描述:实现一个方法使多维数组变成一维数组最常见递归版本如下:function flatter(arr) { if (!...[...pre, ...flatter(cur)] : [...pre, cur], [] );}// console.log(flatter([1, 2, [1, [2, 3, [4, 5,

56220

前端高频面试题(四)(附答案)

说一下data为什么一个函数不是一个对象?JavaScript对象是引用类型数据,当多个实例引用同一个对象时,只要一个实例对这个对象进行操作,其他实例数据也会发生变化。...除此之外,PNG-8还支持透明度调节,GIF并不支持。除非需要动画支持,否则没有理由使用GIF不是PNG-8。(5)PNG-24无损、使用直接色点阵图。...优点:1.体验好,不刷新,减少 请求  数据ajax异步获取 页面流程;2.前后端分离3.减轻服务端压力4.共用一套后端程序代码,适配多端缺点:1.首屏加载过慢;2.SEO 不利于搜索引擎抓取为什么函数...arguments 参数数组不是数组?...,b赋值为3,b此时一个全局变量,而将3赋值给a,a一个局部变量,所以最后打印时候,a仍旧undefined。

59940

2021前端面试必备题+答案

其次 VDOM 和真实 DOM 区别和优化: 虚拟 DOM 不会立马进行排版与重绘操作 虚拟 DOM 进行频繁修改,然后一次性比较并修改真实 DOM 需要改部分,最后在真实 DOM 中进行排版与重绘...方法2:当页面出现业务定义错误码时,则认为白屏。比如“网络或服务异常”。 方法3:当页面出现业务定义特征值时,则认为白屏。比如“数据加载”。...实例,该方法接受一个由Promise对象组成数组作为参数(Promise.all()方法参数可以不是数组,但必须具有Iterator接口,且返回每个成员都是Promise实例),注意参数只要有一个实例触发...需要注意,立即resolve() Promise 对象,在本轮“事件循环”(event loop)结束时执行,不是在下一轮“事件循环”开始时。...if (Array.isArray(target) && isValidArrayIndex(key)) { // 修改数组长度, 避免索引>数组长度导致splcie()执行有误

78830

京东前端二面必会vue面试题(持续更新)_2023-02-24

访问根组件属性或方法,根组件,不是父组件。...$root 访问根组件属性或方法 作用:访问根组件属性或方法 注意:根组件,不是父组件。...// 修改数组长度, 避免索引>数组长度导致splcie()执行有误 target.length = Math.max(target.length, key) // 利用数组splice...,sth => value; (2)作用在组件上 在自定义组件,v-model 默认会利用名为 value prop和名为 input 事件 本质一个父子组件通信语法糖,通过prop和$....AST元素节点总共三种类型:type为1表示普通元素、2为表达式、3为纯文本 (2)对静态节点做优化 optimize(ast,options) 这个过程主要分析出哪些静态节点,给其打一个标记,为后续更新渲染可以直接跳过静态节点做优化

77530

高频js手写题之实现数组扁平化、深拷贝、总线模式_2023-02-23

三道js手写题思路和代码实现 数组扁平化 演示效果 将[1, 1, 2, [1, 2]] 变成 1, 1, 2, 1, 2 第一种: 直接使用.flat console.log([1, [1,2],[...1,[2]]].flat(3)); 可以将多维数组,降维,传参数是多少就降多少维 一般直接传参数为 Infinity(简单粗暴) 第二种: 递归方法方法 + 借用数组API完成 (1) function...(即其自身定义属性,不是其原型链上枚举属性)将为新创建对象添加指定属性值和对应属性描述符。...,其中弱引用对象,值可以是任意。...,必须一个函数, // 另外判断是否object这块递归去找对象是否还存在函数,如果不是函数, // 自定义事件没有回调肯定是不行 return isValidListener

41610

2021-07-27:给定一个数组arr,长度为N,arr值只有1,23三种。arr == 1,代表汉诺塔问题中,从

2021-07-27:给定一个数组arr,长度为N,arr值只有1,23三种。...arr[i] == 1,代表汉诺塔问题中,从上往下第i个圆盘目前在左;arr[i] == 2,代表汉诺塔问题中,从上往下第i个圆盘目前在;arr[i] == 3,代表汉诺塔问题中,从上往下第i个圆盘目前在右...那么arr整体就代表汉诺塔游戏过程一个状况。如果这个状况不是汉诺塔最优解运动过程状况,返回-1。如果这个状况汉诺塔最优解运动过程状况,返回它是第几个状况。...福大大 答案2021-07-27: 1-7汉诺塔问题。 1. 1-6左→2. 7左→右。 3. 1-6→右。 单决策递归。 k层汉诺塔问题,[2k次方-1]步。 时间复杂度:O(N)。...to 另一个啥?

89130

高频js手写题之实现数组扁平化、深拷贝、总线模式

]].flat(3));可以将多维数组,降维,传参数是多少就降多少维一般直接传参数为 Infinity(简单粗暴) 第二种: 递归方法方法 + 借用数组API完成(1)function flattten...使用以weakMap进行巧妙处理使用Reflect.ownKeys返回一个由目标对象自身属性键组成数组,对于剩下拷贝类型为object和function但不是null进行递归操作,对于除了上述类型外直接进行...(即其自身定义属性,不是其原型链上枚举属性)将为新创建对象添加指定属性值和对应属性描述符。...,其中弱引用对象,值可以是任意。...,必须一个函数, // 另外判断是否object这块递归去找对象是否还存在函数,如果不是函数, // 自定义事件没有回调肯定是不行 return isValidListener

35740

那些高级前端如何回答面试题_2023-02-28

DOM2 级事件模型,在该事件模型,一次事件共有三个过程,第一个过程事件捕获阶段。...: 也是在所有同源窗口中都是共享.也就是说只要浏览器不关闭,数据仍然存在 数组扁平化 数组扁平化就是将 [1, [2, 3]] 这种多层数组拍平成一层 1, 2, 3。..., 不能修改对象 return res; } apply 描述:与 call 类似,唯一区别就是 call 传入不固定个数参数, apply 传入一个参数数组或类数组。...第一种情况由于使用未声明变量,意外创建了一个全局变量,而使这个变量一直留在内存无法被回收。...Static 关键字有了解嘛 为这个类函数对象直接添加方法,不是加在这个函数对象原型对象上 如果一个构造函数,bind了一个对象,用这个构造函数创建出实例会继承这个对象属性吗?为什么

68110

腾讯前端面试题

端口不是一个URL必须部分,如果省略端口部分,将采用默认端口(HTTP协议默认端口80,HTTPS协议默认端口443);虚拟目录部分:从域名后一个“/”开始到最后一个“/”为止,虚拟目录部分...虚拟目录也不是一个URL必须部分。本例虚拟目录“/news/”;文件名部分:从域名后最后一个“/”开始到“?”为止,文件名部分,如果没有“?”...,则是从域名后最后一个“/”开始到“#”为止,文件部分,如果没有“?”和“#”,那么从域名后最后一个“/”开始到结束,都是文件名部分。本例文件名“index.asp”。...文件名部分也不是一个URL必须部分,如果省略该部分,则使用默认文件名;锚部分:从“#”开始到最后,都是锚部分。本例锚部分“name”。锚部分也不是一个URL必须部分;参数部分:从“?”...margin 值来实现不是通过父元素 padding 来实现

96522

Nodejs学习笔记(二)--- 事件模块

注册了一个监听后,我用emiiter.removeListener移除some_events监听,随后再调用emitter.emit去触发,最后发现不是按我想像在进行!...为什么呢? 我理所当然认为emiiter.removeListener第二个参数个回调函数,API还是要认真看清楚啊!!! 下面再看个成功场景~~~ ?...('some_events', 'Wilson', 'Zhong'); 我用示例写法,给some_events添加了三个监听,又移除了第一个和第三个监听,最后再用emitter.emit触发some_events...emitter.removeAllListeners([event]) emitter.removeListener用过了,但一个事件可以有多个监听,需要全部移除时,一个个移除明显不是愉快做法,不符合偷懒天性...("其它监听事件,参数foo=" + foo + ",bar="+bar ); }); /* EventEmitter.listeners(event) //返回指定事件监听数组

1.2K80

前端手写面试题合集

支持异步 action// 如果 action 个函数,就调用这个函数// 如果 action 不是函数,就传给下一个中间件// 发现 action 函数就调用const thunk = ({...若是输入目标长度小于字符串原本长度则返回字符串本身'xxx'.padStart(2, 's') // 'xxx'// 2. 第二个参数默认值为 " ",长度为1// 3....此参数可能个不确定长度字符串,若是要填充内容达到了目标长度,则将不要部分截取'xxx'.padStart(5, 'sss') // ssxxx// 4....数组去重实现基本原理如下:① 初始化一个数组② 将需要去重处理数组第1项在初始化数组查找,如果找不到(空数组中肯定找不到),就将该项添加到初始化数组③ 将需要去重处理数组2项在初始化数组查找...(300,"3"); addTask(400,"4"); 输出顺序2 3 1 4 整个完整执行流程:一开始1、2两个任务开始执行500ms时,2任务执行完毕,输出2,任务3开始执行800ms时,

25720

2023前端一面vue面试题合集_2023-02-27

EventBus: 通过EventBus进行信息发布与订阅 vuex: 全局数据管理库,可以通过vuex管理全局数据流 $attrs/$listeners: Vue2.4加入$attrs/$listeners...虚拟DOM本质上JavaScript对象,对真实DOM抽象 状态变更时,记录新树和旧树差异 最后把差异更新到真正dom 说说Vue生命周期吧 什么时候被调用?...这个可以是这个节点唯一标识,告诉 diff 算法,在更改前后它们一个DOM节点 扩展 v-for 为什么要有<code...并且可以多人协作,每个人写不同组件,最后像撘积木一样把它构成一个页面 Vue3.0 和 2.0 响应式原理区别 Vue3.x 改用 Proxy 替代 Object.defineProperty。...(key)) { // 修改数组长度, 避免索引>数组长度导致splcie()执行有误 target.length = Math.max(target.length, key) // 利用数组splice

72140

VUE防抖与节流

} } 注意:在 2.3.0 之前版本,如果一个函数式组件想要接收 prop,则 props 选项必须。...render函数第二个参数context用来代替上下文this他一个包含如下字段对象: props:提供所有 prop 对象 children: VNode 子节点数组 slots: 一个函数...slots() 和 children 对比 你可能想知道为什么同时需要 slots() 和 children。slots().default 不是和 children 类似的吗?...在一些场景这样——但如果如下带有子节点函数式组件呢?...一个函数式组件使用场景 假设有一个a组件,引入了 a1,a2,a3 三个组件,a组件父组件给a组件传入了一个type属性根据type值a组件来决定显示 a1,a2,a3 那个组件。

2K30

vue面试经常会问那些题

当 cache 内原有组件被使用时会将该组件 key 从 keys 数组删除,然后 push 到 keys数组最后,以便清除最不常用组件。...max 所设置范围,超过,那么削减未使用时间最长一个组件 key最后将这个组件 keepAlive 设置为 true(3)keep-alive 本身创建过程和 patch 过程缓存渲染时候...得到new Vue()实例,在这实例上再拿$parent得到undefined,而在最底层子组件拿$children个空数组$children 数组$parent个对象(5)$...$emit("test2"); // 触发APP.vuetest2方法 },};在上述代码:C组件能直接触发test原因在于 B组件调用C组件时 使用 v-on 绑定了$listeners...这些被标记节点(静态节点)我们就可以跳过对它们比对,对运行时模板起到很大优化作用。编译最后一步将优化后AST树转换为可执行代码。为什么vue组件data必须一个函数?

1K20

Redux 原理与实现

数组一个监听函数 listeners.forEach(listener => listener()); return action; // 返回 action } subscribe...这个函数主要是往 listeners 数组中放入监听函数,参数就是一个监听函数。...middlewareAPI 传递给中间件函数参数,每个中间件在书写时都应该有一个参数,里面有 getState 方法和 dispatch 包装函数。 chain 数组里面就是中间件函数。...在 redux 也是如此,并且中间件有顺序,chain 数组最左侧中间件会先调用,然后在内部调用 next 方法,表示执行下一个中间件。...这也就是为什么 redux-logger 中间件为什么放在数组最右边,最左边中间件会先执行,不那样做可能就无法打印出准确 action 信息。

4.4K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券