Fenger Ding

Results 5 comments of Fenger Ding

用四个变量up, down, left, right分别记录当前上下左右范围,每遍历一行或一列就修改相应的值。 例如遍历了上面第一行,就应该把up加一,遍历了右边第一列就应把right减一 ```javascript var spiralOrder = function(matrix) { if (matrix === undefined || matrix.length === 0) return []; let res = []; let left = 0, right...

用carry存储每次的进位 ```javascript var addTwoNumbers = function(l1, l2) { let carry = 0; let root = new ListNode(0) let p = root; while (l1 || l2) { let sum = 0...

比较简陋的版本,假设给的字符串一定是标准的,没有容错处理,有不好的地方望指出。 思路:类似于常见的括号处理的题, 1. 遇到起始标签则入栈, 2. 遇到结束标签则查找最近的起始标签,新建node,将首尾间的所有node存为children,并将中间的所有node和标签出栈; 3. 遇到单闭合标签则直接生成node,入栈。 后续可以逐渐完善,增加各种错误处理 ```javascript function createNode(name) { return { name: name, children: null } } function parse(str) { const stack = []; let i...

比较简单的题,用栈处理 ```javascript var removeDuplicates = function(S) { let res = []; for (c of S) { if (res.length > 0 && res[res.length-1] == c) { res.pop(); } else { res.push(c);...

说实话,感觉考这些真的很无聊。。学js学得都陷在语法的泥潭里了,像极了大学时期末考试C语言i++、++i之类的。。