Barret李靖
Barret李靖
@youngwind 可以考虑在下次出题的时候,想办法构造下类似的拓展题目,增加趣味和挑战 ;)
@szu-bee 也可以利用下 TwoSum 来处理: ```js const threeSum = (input, target) => { let i, len; const hashMap = input.reduce((map, item, index) => { if (!map[item]) map[item] = index; return map;...
实验性的 repo,从小密圈发起的。 本来打算试行一周,坚持了两三周,还是有点吃力。 算法这个东西,适合一个人默默的搞,把结果和分析发出来,不太适合聚众讨论,尤其是这种需要大量 test case 的题目,还是去 leetcode 专业平台上玩比较有意思。 最近工作也比较忙,生活上的事情也比较多,有些顾不上了。 不过搞不好,过几个月清闲了,时间充裕了,还是会回来折腾的,到时候可能会换一个形式。
```js function resolve(S, target) { S.sort((a, b) => a > b ? -1 : 1); var i = S.length - 1, closest = S[i - 2] + S[i - 1]...
相对数组,链表使用起来要简便很多,在内存中,栈/数组的储存是连续的,如果需要对栈的内部元素做处理(比如删除或者插入),动作会比较大。而链表,可以轻松修改下待处理元素(或者其附近元素)的指针就可以解决问题。 链表实现:https://github.com/barretlee/daily-algorithms/blob/master/ref/linkedlist.js
使用规范的链表,解法如下: ```js import LinkedList, {Node} from './linkedlist'; const linkA = new LinkedList(2); linkA.append(4); linkA.append(3); const linkB = new LinkedList(5); linkB.append(6); linkB.append(4); const ret = resolve(linkA, linkB); console.log(JSON.stringify(ret, null, 2)); function...
```diff function resolve(a, b) { const alen = a.length; const blen = b.length; let count = Math.max(alen, blen); let target = a.head, plus = b.head; if (alen < blen) {...
@winar-jin 不用删除,没关系,markdown 代码格式选择 diff,第一行第一个字符为 `-` 便为红色,`+` 则为绿色。 ```diff - red - red + green + green ``` 
罗马数字的规律还是比较容易掌握的, ```js function resolve(roman) { var map = { M: 1000, D: 500, C: 100, L: 50, X: 10, V: 5, I: 1 }; var index = 0, integer =...
刚开始题设是相邻的线,并且可以包含 Y 轴,写了一个答案: ```js function resolve(arr) { var max = 0; var maxIndex = 0; for (var i = 0, len = arr.length; i < len; i++) { var tmp...