上来一道算法,面了75分钟(面试官好闲),几乎问题都要往底层问,当场去世,肯定凉凉🙃
- js和c语言有什么区别
-
c语言的指针了解吗
-
为什么复杂数据类型在堆内存里
-
闭包说一下,闭包这个是存在哪里的(堆)
-
事件循环说下,执行栈空了循环会停止吗???是死循环吗
-
node和js有什么区别
-
node事件循环机制
-
鼠标点击触发一个事件,说一下浏览器方面的过程,跟浏览器刷新率(帧)来分析
-
css为什么叫层叠样式表
-
拖拽怎么实现高性能
-
requestanimationframe
-
变量提升,暂时性死区
-
全局作用域下var存在哪里,let,const存在哪里
-
webpack用过吗,都怎么优化的
-
怎么区分生产和开发环境
-
webpack路由懒加载原理,怎么打包到一起,什么场景打包到一起
-
一道算法
/*
给定一个数组 nums,编写一个函数将所有 3 移动到数组的末尾,同时保持其他元素的相对顺序。
示例:
输入: [0,1,0,3,3,3,12,3,1,6,3]
输出: [0,1,0,12,1,6,3,3,3,3,3]
说明:
- 使用 javascript
- 必须在原数组上操作,不能拷贝额外的数组,即空间复杂度要求为 O(1)。
- 不能使用 Array.prototype.splice() 和 Array.prototype.slice() 和 delete
- 简单来说就是只允许数组内元素位置互换
- 尽量减少操作次数,争取时间复杂度为 O(n)。
*/
示例:
输入: [0,1,0,3,3,3,12,3,1,6,3]
输出: [0,1,0,12,1,6,3,3,3,3,3]
说明:
- 使用 javascript
- 必须在原数组上操作,不能拷贝额外的数组,即空间复杂度要求为 O(1)。
- 不能使用 Array.prototype.splice() 和 Array.prototype.slice() 和 delete
- 简单来说就是只允许数组内元素位置互换
- 尽量减少操作次数,争取时间复杂度为 O(n)。
*/
function sort(nums) { var num = 0 for(var j = 0;j<nums.length;j++){ if(nums[j] == 3){ num++ }else if(num != 0){ let n = j nums[j-num] = nums[j] nums[n] = 3 } } return nums }
全部评论
(2) 回帖