左耳听风 第二十二周
每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)
Algorithm
针对「堆」的知识点进行了一些练习,两道题都可以用 Top K 思路解答,即建立一个大小为 K 的小顶堆,根据数据的增加对堆数据进行更新。
LeetCode703. 数据流中的第K大元素
215. 数组中的第K个最大元素
review
12 JavaScript Tricks You Won’t Find in Most Tutorials
「无法在大多数教程中找到的 12 个 JavaScript 技巧」。
文章主要描述作者在实践中发现的 12 个 JavaScript 编程技巧,让自己的代码变得更简洁高效。
因为 JavaScript 是一门动态语言,对数据的要求并不严谨,所以有一些静态语言所没有的技巧。
例如 23.9|0 实际上就是快速去除了浮点数的尾数,即将浮点型转换成了整型。
还有快速将数值类型转换成字符串类型的 num =19+""; 通过 + 号运算符重载,num变成了字符串 “19”。
直接通过算术运算比通过方法强制转换更为高效,作者在文中还介绍了其他的实用技巧感兴趣可以完整的浏览一遍。
Tip
一个关于 HTML5 JavaScript 脚本引入的技巧,以前网页加载以前执行某些脚本或是 JavaScript 操作页面元素,我们需要把脚本放在 body 标签的末尾(网页代码的执行顺序是从上到下)。
HTML5 以前写法
<body>
<div id="test">test</div>
<script>
document.getElementById("test").style.color="blue"; // 将 test 设置成蓝色
<script>
</body>
HTML5 新增 defer 属性,<script defer>会让脚本在网页元素全部加载后执行,将 JavaScript 和 HTML代码分开写更为清晰(外部引入脚本也可以使用 defer 属性)。
<head>
<script defer>
document.getElementById("test").style.color="blue"; // 将 test 设置成蓝色
<script>
</head>
<body>
<div id="test">test</div>
</body>
share
简单入门「堆」
对于二叉堆进行了一个简单的入门,堆的重点在于掌握堆化,针对不同的应用场景选择不同的堆化。 |