![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端100问
文章平均质量分 55
天界程序员
笔落惊风雨,诗成泣鬼神。
展开
-
20、CSS中单位:【px和%】【em和rem】【vw|vh|vmin|vmax】的区别
css中px、%| em 、rem | vw、vh、vmin、vmax的区别原创 2023-02-09 17:59:20 · 1018 阅读 · 2 评论 -
19、节流和防抖的区别以及应用场景的理解
节流与防抖的区别是什么、应用场景、图解原创 2023-02-07 23:25:46 · 7289 阅读 · 14 评论 -
17、为什么0.1 + 0.2 不等于 0.3
再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。浮点数相加时,需要先比较指位数是否一致,如果一致则小数位直接相加,如果不一致,要先把指位数调成一致的,指位数小的向大的调整。转成浮点数形式的二进制。转载 2022-11-29 04:47:02 · 1996 阅读 · 0 评论 -
18、ajax、fetch、axios区别
Ajax,一种技术统称Fetch,一个原生APIAxios,一个第三方库lib和API的区别实际项目中,使用现成的lib,尽量不要用自己的轮子但是读源码、造轮子是很好的个人学习方式。原创 2022-11-25 00:45:00 · 259 阅读 · 0 评论 -
16、JS切换字母大小写
慎用正则表达式常见字符的ASCII码增加知识广度,可以更快的思考解决问题的方法。原创 2022-11-17 01:00:00 · 252 阅读 · 0 评论 -
15、JS实现数字千分位格式化
顺序:从尾到头尽量不要转换数据结构慎用正则表达式。原创 2022-11-16 01:00:00 · 601 阅读 · 0 评论 -
14、获取1-10000之间的所有回文数
尽量不要转换数据结构,尤其数组这种有序结构尽量不要用内置API,如reverse,不好识别复杂度数字操作最快,其次是字符串。原创 2022-11-15 08:00:00 · 1041 阅读 · 0 评论 -
13、用JS实现快速排序
常见排序算法有二分,时间复杂度就包含O(logn)注意数组操作:splice 和 slice的区别。原创 2022-11-14 09:00:00 · 179 阅读 · 0 评论 -
12、字符串中连续最多的字符以及次数
要注意实际复杂度,不要被代码表面迷惑双指针常用于解决嵌套循环算法题慎用正则表达式(实际工作可以用)原创 2022-11-13 09:00:00 · 633 阅读 · 0 评论 -
11、将数组中的 0 移动到末尾
向面试官确认:是否必须修改原数组?数组是连续存储结构,要慎用splice、unshift等API双指针思路。原创 2022-11-12 09:00:00 · 714 阅读 · 0 评论 -
10、斐波那契数列
用JS计算斐波那契数列的第n个值。原创 2022-11-11 09:00:00 · 407 阅读 · 0 评论 -
9、求二叉搜索树第k小值
二叉树,和三种(前序、中序、后序)遍历二叉搜索树的特点:left原创 2022-11-10 09:00:00 · 423 阅读 · 0 评论 -
8、在一个数组中找出和为n的两个数
时间复杂度达到O(n^2),是不可用的算法凡是有序,都可以考虑二分法思想优化嵌套循环,可以考虑“双指针 ”原创 2022-11-07 09:00:00 · 425 阅读 · 0 评论 -
7、JS实现二分查找
由此可见循环的二分比递归的二分,性能更佳,但是递归语义更容易理解,所以常用的还是递归!原创 2022-11-06 09:00:00 · 147 阅读 · 0 评论 -
6、链表和数组,哪个实现队列更快?
数据结构的选择,要比算法优化更重要要有时间复杂度的敏感性,如length不能遍历查找。原创 2022-11-05 09:00:00 · 921 阅读 · 0 评论 -
5、定义一个JS函数,反转单向链表
能够跟据数组创建一个完整的单向链表,且反转单向链表功能正常。原创 2022-11-04 09:00:00 · 138 阅读 · 0 评论 -
4、两个栈实现一个队列
所以第三步D在栈顶,新增新的元素E或F,就在D的后面,满足的队列的先进先出规则。此时已经删除完了A,但是后续继续增加新的元素E或F,应该在D的后面,此时A在栈底,但是队列是先进先出,要删除A,需要将A放到栈顶。此时栈2中,A是在栈顶,可以删除A,满足队列先进先出的规则。示例:入队===> ABCD === 【DCBA】出队:1、栈1【DCBA】=2、栈2【ABCD】=满足队列先进先出的规则。=>栈2【ABCD】3、栈2【BCD】==> 栈1【DCB】原创 2022-11-03 09:00:00 · 131 阅读 · 0 评论 -
3、判断一个字符串的括号是否成对匹配
对于时间复杂度:关于includes这个API来说,它的时间复杂度是O(n), 但是在这里只用了3个固定的字符来使用这个API,计算量可以算为常量级别。对于空间复杂度:这里新建了一个数组,它的长度大小和字符串里面包含的左括号成正比,所以在这里它的空间复杂度是O(n)数量级。数组可以实现栈,栈是一个抽象的模型,栈实现不了数组。原创 2022-11-02 09:00:00 · 694 阅读 · 0 评论 -
2、将一个数组旋转K步
代码示例1代码示例2关于 当k是字符串时,取余的结果是。在示例1中 , 在示例2中 。JEST单元测试性能测试结果:思路2 性能 远超思路1数组是一个连续的内存空间,unshift操作是一个有序的操作,相当于对数组进行了一次遍历,所以非常慢!!!所以思路1的时间复杂度不是O(n)而是O(n ^ 2)!原创 2022-11-01 09:00:00 · 219 阅读 · 0 评论 -
1、什么是复杂度?
以上代码并无实际意义,只谈论计算量,这里是双层循环,当外层循环一次,内层循环n次;当外层循环n次,内层循环n * n次,所以这里的计算量是O(n^2)。以上代码没有循环,从对象取一个属性算一次计算量,做加分算一次计算量,都是属于常量级别的数量级,即O(1)。这里可以看出定义的数组arr2的空间大小与arr的长度成正比的关系,所以这里的空间复杂度是O(n)。以上代码的计算量和数组长度成正比,长度是10,计算量就是10,所以这里的计算量是O(n)。一般针对一个具体的算法,而非一个完整的系统。原创 2022-10-31 09:51:22 · 1451 阅读 · 0 评论