19.9.4 做了三道简单题。155,1027和1047
语法
array.forEach(function(currentValue, index, arr), thisValue)
参数
参数 |
描述 |
||||||||
---|---|---|---|---|---|---|---|---|---|
function(currentValue, index, arr) |
必需。 数组中每个元素需要调用的函数。
|
||||||||
thisValue |
可选。传递给函数的值一般用 "this" 值。 |
技术细节
返回值: |
undefined |
---|---|
JavaScript 版本: |
ECMAScript 3 |
19.9.5 还是三道简单题:2栈:844和682,1排序:1122。
JS有好多方法,以前只是看,现在终于到实操了。
result.concat(arr1.sort((a,b) => a - b));
19.9.6 四道简单题:2栈:496和1030,2排序:976和922
1030. 距离顺序排列矩阵单元格中要求的结果是数组里包含着点[x,y]表示,可以把点也当做一个数组。方括号可以访问的
Math.abs()是求绝对值
922. 按奇偶排序数组 II,我看完官方题解之后,决定用双指针,我觉得这个用法很像快排里的一部分,很简洁。但是!我错了!用两个while分别对 i 和 j 的结束条件很不简洁。所以我换成了另一个思路。详见:922题解
19.9.7 目前一道中等题...503. 下一个更大元素 II
涉及知识点:单调栈
单调栈详细的解说:https://blog.csdn.net/liujian20150808/article/details/50752861
一般认为维护一个单调递增的栈,是从栈底到栈顶的元素值单调递增,如: 1 3 5 7 9
我们此时有一个单调递减的栈,然后此时我们碰到了大于栈顶元素的值,那么这个值一定是栈顶元素的下一个更大的元素。我们只需将栈顶元素弹出,然后通过字典记录它的下一更大的元素,最后再维护这个单调栈即可。
来自:https://blog.csdn.net/qq_17550379/article/details/86501664
待完成:1124. 表现良好的最长时间段(单调栈,前缀和) 和 739. 每日温度(单调栈)
前缀和 看 https://blog.csdn.net/qq_17550379/article/details/96005987
19.9.8 哭了..自己挖坑自己跳 想用单调栈实现下一个更大元素I,但是找不到修改的方法..就这么过了一个多小时 这道题可以用哈希 O(n)呢,在收藏夹里
每日温度那个我都还没消化完...
Array.from 类数组转换成数组
trunc是一种函数,是截取日期或数字,返回指定的值。函数trunc直接去除数字的小数部分。
19.9.9 做了876. 链表的中间结点 两个方法:①将链表存在数组里,用索引直接访问 ②用快慢指针,快的是慢的2倍,当快的到终点时,慢的刚好在中间 (但这道题有一些不懂的地方...
这两天看到好多用哈希的...
对ES6的constructor感到困惑时,看:https://www.jianshu.com/p/fc79756b1dc0
做了一点这个707. 设计链表,这题有坑,先留着吧,不想改了
237. 删除链表中的节点 解法:狸猫换太子。
https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/73-shan-chu-lie-biao-zhong-de-jie-dian-by-joeyzhou/ 这个题解能学到Object.assign()
19.9.10 两道链表简单题
234. 回文链表 快慢针,反转前半部分。根据链表长度(奇or偶)做小改动。判断节点的val属性是否相等
206. 反转链表 有两个方法。迭代和递归,自己能实现迭代,但递归还得背一背
19.9.11 两道链表简单题 + 看哈希
链表简单题:
203. 移除链表元素 (踩了好多坑
160. 相交链表 (有点巧妙。弄两个指针,当遍历完自己的之后转去遍历对方的。这能够抵消两条链表的差异(节点数不同的差异),当指针第一次重合就是答案
哈希简单题:
数组的push可以一次push好几个的
1078. Bigram 分词
1160. 拼写单词
1.get的用法:返回根据键值检索到的特定的值
2.let newMap = new Map(map);//复制一个map
3.这题可多看
19.9.12(有点懈怠了,现在是20:53,我还在搞第一题
1002. 查找常用字符 题解:https://leetcode-cn.com/problems/find-common-characters/solution/js-by-blzbanme/
这题的解法三用了filter,不太懂。filter会返回return true的元素组成的数组,但下面这行代码,实在巧妙,我有点暂时接受不了。我的疑问是,temp[index] = 1这个,也算true的表达??
return index !== -1 ? temp[index] = 1 : false;
242. 有效的字母异位词 我用的方法跟1002那道题一样,为什么那道题运行速度还行而这个运行速度直接飙2000ms?
我觉得排序这块会有很多可以用哈希的地方,如果明天还想练哈希的话,去排序那里看吧
19.9.13
350. 两个数组的交集 II 尝试用了四个方法解,但是中午叫了外卖..直接导致我之后没有学习了
19.9.14
104. 二叉树的最大深度
思路(我觉得这个思路可以参考) 来源题解
标签:DFS
找出终止条件: 当前节点为空
找出返回值: 节点为空时说明高度为0,所以返回0;节点不为空时则分别求左右子树的高度的最大值,同时加1表示当前节点的高度,返回该数值
某层的执行过程:在返回值部分基本已经描述清楚
时间复杂度:O(n)
993. 二叉树的堂兄弟节点 用了dfs 递归。
1185. 一周中的第几天 感觉逻辑没错但答案还是不对
19.9.15
965. 单值二叉树
589. N叉树的前序遍历未做
19.9.16
没做,搞懂了归并(递归+非递归)和快排
19.9.17 打算:两道leetcode,一道牛客网
589. N叉树的前序遍历
872. 叶子相似的树
做了份笔试题。
牛客网在线判题系统JavaScript(V8)使用
JS中将字符串中每个单词的首字母大写化
unicode,ansi,utf-8,unicode big endian编码的区别
JavaScript 如何定义一个二维数组
19.9.18
938. 二叉搜索树的范围和
897. 递增顺序查找树(哈哈哈哈实力瞎掰,突然发现自己掰对了
// 这是可以的,而且函数参数不需要传递数组res,按下面的形式res就能被修改了
let res = [];
inOrderNode(root);
function inOrderNode(root){
...res.push(...)
}
897这道题,看官方题解,运行速度越来越慢。是因为js不适合构建节点?感觉新建节点就很慢很慢
897...我累了..实现完最后一个方法(用辅助栈)就不管它了!
19.9.19
1046. 最后一块石头的重量 (才一道题啊...花了我1h
19.9.20
以下两题...都不会,连题目都没懂,题解更加不想看了
973. 最接近原点的 K 个点 题解
1022 从根到叶的二进制数之和
20. 有效的括号
101 对称二叉树
19.9.21
1029. 两地调度(sort方法的参数,只需要参数名,就是传入的是二维数组,也一样
costs.sort((o1, o2) => {
return o1[0]-o1[1]-(o2[0]-o2[1]);
});
232. 用栈实现队列,225. 用队列实现栈 通过数组来实现就可以了,很简单,不总结
94. 二叉树的中序遍历 基于栈的遍历和莫里斯遍历还没弄~明天弄吧
19.9.22
参加了155周赛,做了接近两个小时的第一题...结果因为给的数太大了,直接爆掉...我也不想啊..我也很想拿3分的...
我感觉我把之前练习得来的经验全用在这道题上了...小范围的数值是能运行正确的
如何输出数组中的数组([ [ ,],[ ,],[ ,],[ ,] ]):先:var res = []; var temp = [1,2],再res.push(temp);
把昨天94题的莫里斯弄了,之前的一个问题经常报错的问题也解决了(!s和s.length!=0,js不能用!s表达数组非空)
19.9.23
144. 二叉树的前序遍历
145. 二叉树的后序遍历(还没弄完)看官方题解的评论https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/er-cha-shu-de-hou-xu-bian-li-by-leetcode/ 还有莫里斯的https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/mo-li-si-bian-li-bu-yong-zhan-bu-yong-di-gui-by-zh/ 还有最基础的后序迭代思路https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/145er-cha-shu-de-hou-xu-bian-li-javascript-ti-jie-/
19.9.28
我胡汉三又回来了!!这几天一直在补前端的知识,早上没打码,去看笔试错了题目了(但效率好像不高555)
今天把后序的剩下三个思路补全啦~撒花
之后忙的话还是希望能每天一题~
19.9.30
其实昨天我看了一道题的....但是没写....
思路还记得
19.9.30
emmm我这几天回家看两题题解,19和整数反转
19.11.23
https://www.nowcoder.com/discuss/101711?type=5剑指offer js版
收藏夹leetcode有几篇
19.11.27开始看剑指Offer
面试题4:二维数组中的查找
一开始没思路,要不就暴力破解。想到两个最值,min(左上角)和max(右下角),先把整数值与两个最值比较。
看完题解:通过数组的右上角来逐步缩小查询数组的范围。