-
重学前端-43 | 性能:前端的性能到底对业务数据有多大的影响?
平均加载时间 VS 秒开率所以很多很多时候,平均不是一个好东西文中做讲的性能优化,很有启发,但因为是只讲了理论高度,又不知具体从何下手…
-
重学前端-42 | HTML·ARIA:可访问性是只给盲人用的特性么?
不知所云…
-
重学前端-41 | CSS小实验:动手做,用代码挖掘CSS属性
不知所云…
-
重学前端-40 | CSS渲染:CSS是如何绘制颜色的?
CMYK 如果你上过小学美术课,应该听过“红黄蓝”三原色的说法,这好像跟我们说的不太一样。实际上是这样的,颜料显示颜色的原理是它吸收了所有别的颜色的光,只反射一种颜色,所以颜料三原色其实是红、绿、蓝的补色,也就是:品红、黄、青。因为它们跟红、黄、蓝相近,所以有了这样的说法。 在印刷行业,使用的就是这样的三原色(品红、黄、青)来调配油墨,这种颜色的表示法叫做 CMYK,它用一个四元组来表示颜色。 你一定会好奇,为什么它比三原色多了一种,其实答案并不复杂,在印刷行业中,黑色颜料价格最低,而品红...…
-
数据结构与算法之美-07 | 链表(下):如何轻松写出正确的链表代码?
我精选了 5 个常见的链表操作。你只要把这几个操作都能写熟练,不熟就多写几遍,我保证你之后再也不会害怕写链表代码。 单链表反转 链表中环的检测 两个有序的链表合并 删除链表倒数第 n 个结点 求链表的中间结点有空写写看,写完再进入下一步。zeta 置顶建议大家在实现之前的思考时间不要太长。一是先用自己能想到的暴力方法实现试试。另外就是在一定时间内(比如半个到一个小时)实在想不到就要在网上搜搜答案。有的算法,比如链表中环的检测,的最优解法还是挺巧妙的,一般来说不是生想就能想到的👍 144 2...…
-
数据结构与算法之美-06 | 链表(上):如何实现LRU缓存淘汰算法?
学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法。 缓存是一种提高数据读取性能的技术,在硬件设计、软件开发中都有着非常广泛的应用,比如常见的 CPU 缓存、数据库缓存、浏览器缓存等等。 缓存的大小有限,当缓存被用满时,哪些数据应该被清理出去,哪些数据应该被保留?这就需要缓存淘汰策略来决定。常见的策略有三种:先进先出策略 FIFO(First In,First Out)、最少使用策略 LFU(Least Frequently Used)、...…
-
数据结构与算法之美-05 | 数组:为什么很多编程语言中数组都从0开始编号?
数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。iOS的nsarray,可以存不同类型的数据,还是传统意义的数组吗,不是,文章中讲了java的,https://www.desgard.com/CFArray/ 这里也有讲到这里我要特别纠正一个“错误”。我在面试的时候,常常会问数组和链表的区别,很多人都回答说,“链表适合插入、删除,时间复杂度 O(1);数组适合查找,查找时间复杂度为 O(1)”。 实际上,这种表述是不准确的。数组是适合查找操作,...…
-
数据结构与算法之美-04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度
最好情况时间复杂度(best case time complexity)、最坏情况时间复杂度(worst case time complexity)、平均情况时间复杂度(average case time complexity)、均摊时间复杂度(amortized time complexity)平均情况时间复杂度、均摊时间复杂度,这两个有点复杂,看看文章中的介绍,很精彩很精彩…
-
数据结构与算法之美-03 | 复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?如何抓住重点,系统高效地学习数据结构与算法?
O(logn)、O(nlogn)i=1;while (i <= n) { i = i * 2;}i=1;while (i <= n) { i = i * 3;}2^0 2^1 2^2 … 2^x我们只要知道 x 值是多少,就知道这行代码执行的次数了。通过 2x=n 求解 x 这个问题我们想高中应该就学过了,我就不多说了。x=log2n,所以,上面这段代码的时间复杂度就是 O(log2n)。根据我刚刚讲的思路,很简单就能看出来,下面这段代码的时间复杂度为 O(log3...…
-
数据结构与算法之美-02 | 如何抓住重点,系统高效地学习数据结构与算法?
那数据结构和算法有什么关系呢?为什么大部分书都把这两个东西放到一块儿来讲呢? 这是因为,数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。 比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。…