摘要:
一个很常见的问题,找出一个数组中和为给定值的两个数的下标。为了简单一般会注明解只有一个之类的。 最容易想到的方法是循环遍历,这里就不说了。 在JS中比较优雅的方式是利用JS的对象作为hash的方式: 这里面还可以做一些小的优化,比如把length拿出来,重复使用的 nums[i] 也抽取出来,遍历的 阅读全文
摘要:
整理一些刷题时学会的小技巧……目录:即大于0又小于0的变量String.split() 与 正则表达式缓存的几种方法初始化一个数组即大于0又小于0的变量问题: 设计一个变量val,使得以下表达式返回true:val0;逻辑上来说一个数是不可能即大于0又小于0的。我们能做到的只是让一个变量一会大于0一... 阅读全文
摘要:
20210925 更新 不知不觉离写下这篇博文已经过去了五六年,记得当时的我还没找到工作,一个人在出租屋里写着这些乱七八糟的东西。时光飞逝啊。 其实全排列是一个非常基础的问题,leetcode 上相关的题目也不少。通常来说可以用回溯算法解决。这里就再给出个简单的实现,掩盖一下当初的黑历史(bushi 阅读全文
摘要:
许多人第一次接触闭包大概都是从高程里这段代码开始的: 或者是用for循环在给网页中一连串元素绑定例如onclick事件时。 所有的教材在讲到这一点时都会给出这样的解释: 因为每个函数都保存着createFunction中的活动对象,所以它们引用的都是同一个变量 i 。而循环结束后 i 的值为10,所 阅读全文
摘要:
堆排序是一种集合了插入排序与归并排序的优点的排序算法,即有不错的渐近运算上限,又不用占用额外的运行空间。简单的说,它的排序思想如下:从一个数组中选出最大的数,然后在剩余的数里选出最大的数,如此循环,直到数组被穷尽,即可得到有序的数组。根据这个思路,很容易想到其复杂度:第一步,从n个数里选出最大的数,... 阅读全文
摘要:
问题描述实现‘字符串加法’,即将两个以字符串形式表示的数字相加,得到结果然后返回一个新的字符串。例如:输入‘123’,‘321’,返回‘444’。这样在进行两个任意大的整数相加的时候,既不会溢出,也不会损失精度。解决方案1 我的解决方案function sumStrings(a,b) { var ... 阅读全文
摘要:
1.插入排序JS实现如下:function insertSort(arr){ for(var i=1; i=0 && arr[j]>arr[j+1];j--) [arr[j], arr[j+1]] = [arr[j+1], arr[j]]; return arr;}... 阅读全文
摘要:
Firebug是一件非常好用的调试工具,然而默认的字体有些单调,设置里又没有更改的选项,那么字体到底能不能更改呢?这个问题困扰了我好久,直到今天我才偶然发现了解决方案。Firebug属于火狐的一个插件,本质上还是一个网页打包而成的文件。我们打开以下路径:C:/Users//AppData/Roami... 阅读全文
摘要:
问题描述:We are asking for a function to take a positive integer value, and return a list of all positive integer pairs whose values - when squared- sum t... 阅读全文
摘要:
在知乎上看到这样一个问题:http://www.zhihu.com/question/31805304;简单地说就是实现这样一个add函数:add(x1)(x2)(x3)...(xn) == x1 + x2 + x3 + ... + xn // true;正好发现在codewars上也有这道题,那不... 阅读全文