
JS算法系列
基本都是JavaScript写的算法题。
IsPinocchio
学之广在于不倦,不倦在于固志
展开
-
JS算法之栈
leetcode155:最小栈var MinStack = function() { this.stack = [] this.min_stack = [Number.MAX_VALUE]};/** * @param {number} x * @return {void} */MinStack.prototype.push = function(x) { this.stack.push(x) if(x > this.min_stack[this.min原创 2021-02-22 22:22:30 · 335 阅读 · 0 评论 -
JS算法之字符串篇(很多基操)
下标不存在时,str[index]和str.charAt(index)的区别:str[index]会返回undefinedstr.charAt(index)会返回""(空字符串)leetcode14:最长公共前缀注意存在空数组的情况。既然判断最长的公共前缀,那么在恰当的位置终止循环是必要的。这里用到了数组的every()方法,以判断数组元素是否存在公共的元素。var longestCommonPrefix = function(strs) { let res = '';原创 2021-02-04 00:33:24 · 214 阅读 · 0 评论 -
JS算法之数组篇
leetcode88:合并两个有序数组方法有很多,可以直接将nums2插入nums1后面然后排序,也可以利用双指针,直接将nums2的元素插入到nums1中合适的位置。双指针://目的是将nums2的元素都插入到nums1中,所以循环判断以n为主var merge = function(nums1, m, nums2, n) { let len = m + n -1; m--;n--; while(n>=0){ nums1[len--] = nums1[原创 2021-02-03 20:55:12 · 314 阅读 · 0 评论 -
数组的扁平化以及去重和排序
已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组数组扁平化即将多层嵌套的数组转化为只有一层递归实现:function flatten(arr){ let res = []; for(let i = 0; i < arr.length; i++){ .原创 2021-02-01 13:56:05 · 606 阅读 · 1 评论