
算法
前端小峰
本人热爱编程,以前端为端口完善自己的技术栈,一起成长,一起见证。
展开
-
js算法 找到字符串中的最长连续字符串长度
这样的算法不陌生吧,但是有没有更好的方式呢,可以一起交流下,这个好像是滴滴的一个简单算法题题目:给出一个字符串,找出最长不连续字符串的长度是多少解体思路:上来就是遍历,然后就是把数组没有的数据放进去,如果有的,就把之前的一个数据到第一个都去掉,最后找最大值var lengthOfLongestSubstring = function(s) {let arr = [], max = 0for(let i = 0; i < s.length; i++) {let index = arr..原创 2021-03-18 09:49:47 · 1469 阅读 · 0 评论 -
js对象diff判断
function deepEqual(object1, object2) { const keys1 = Object.keys(object1); const keys2 = Object.keys(object2); if (keys1.length !== keys2.length) { return false; } for (const key of keys1) { const val1 = object1[key]; const val2 = o原创 2020-12-10 10:50:54 · 1379 阅读 · 0 评论 -
js之数组降维且flat源码(百度面试)
我们待会些flat源码,先分析下数据降维我们怎么去处理?法一 用flat方法let ary = [1, [2, [3, [4, 5]]], 6,{name:1}];console.log(ary.flat(Infinity)) // flat不会改变原来数组法二: 用join+splite方法 (只针对基本数据类型)let ary = [1, [2, [3, [4, 5]]], 6, 'sss'];console.log(ary.join(',').splite(',')) // fla原创 2020-09-12 20:16:44 · 668 阅读 · 0 评论 -
JSON.parse(JSON.stringify(obj))实现深拷贝的坑
说到JSON.parse(JSON.stringify(obj)),真的是太多的坑了,主要是这个坑你不知道你就完了,这个面试经常被问到,除了把深拷贝的源码写出来就是问JSON.parse(JSON.stringify(obj))的坑了,今天就谈一谈这个该死的坑其实JSON.parse(JSON.stringify(obj))简而言之就是stringify部分把它冰冻起来,然后pasrse部分给他解冻罢了,但是有些精华的部分就被丢失了。那今天主要找一下那些东西容易被丢失,是蛋白质还是脂肪还是无机盐???.原创 2020-08-24 19:45:38 · 820 阅读 · 0 评论 -
js算法 冒泡排序和冒泡排序优化
冒泡(bubbling)排序是排序就基础的一种,作为前端开发也是必须掌握的,今天我们分析下什么是冒泡算法还有冒泡算法的优化1、冒泡排序冒泡排序顾名思义就是利用到气泡的原理,轻的气泡会浮起来,重的就会沉下去,通过两次的遍历,外层负责遍历数组,内层负责比较后更改顺序。通过比较相邻的两项,对于升序,前面大于后面,则换位置;如果是降序,前面小于后面则更换位置。我们通过一个动画就明白比较的顺序和流程。这是一个图片的形式:这是一个动画的形式:我们看下算法的复杂度:算法名称时间复杂度(平.原创 2020-08-16 11:22:51 · 396 阅读 · 0 评论