#学习笔记
- Git
仓库初始化命令
git init配置用户名git config --global user.name "username"配置电子邮箱git config --global user.email "[email protected]"查看配置信息git config --global --listgit config --local只对某个仓库有效git config --global对所有仓库有效git config --system对系统所有登录的用户有效 生成公钥私钥ssh-keygen -t rsa -C "[email protected]",密钥路径会有提示。把公钥内容复制到github页面,添加到SSH and GPG keys中。 - 实战
- 盛更多水的容器 双指针夹逼
- 移动零 寻找非零元素与零交换。
- 爬楼梯 动态规划,滚动数组,这里初值设置的比较巧
- 三数之和 排序+双指针
- 反转链表 加了个pre节点,初值为nil,使反转后链表尾部正好指向nil
- 两两交换链表中的节点 链表头加虚拟节点
- 环形链表 快慢指针
- 环形链表II 从头指针和快慢指针相遇处一起走,相遇之处就是环
- K个一组翻转链表 按k分组,依次单链表反转,与单链表反转不太一样的地方,pre指向k的next,使得反转后,本分组最后一个节点恰好是指向下一个分组
- 有效的括号 使用栈的特性匹配有效性
- 柱状图中的最大矩形 单调栈,遇到逆序出栈处理,计算以i为高的矩形面积。巧妙之处在数组前后插入0,使第一个元素和最后一个元素都会被处理
- 滑动窗口最大值 滑动窗口问题使用双端队列处理。首先保证窗口小于等于k-1,再处理第k个数。进入窗口前,删除窗口中比他小的数字。窗口>=k时,窗口的第一个元素即是最大值
- 作业
- 旋转数组 全反转,再反转k%长度
- 合并两个有序链表 在头部加了个虚拟节点
- 合并两个有序数组 倒序合并,解决元素后移问题
- 两数之和 一次遍历同时把自己存入map,后续在map中查找另一个数即可,无需再遍历
- 接雨水 使用单调栈,每次遇到逆序处理栈中数据。水量计算方式是以i为底的水量之和
- 总结 本周空闲时间比较多,把实践和作业的题都刷了2遍以上,大部分都是看题解,然后豁然开朗,也有看了几个小时还是蒙圈的。了解了单调栈,双指针,快慢指针,动态规划,滚动数组,不知道遇到类似的问题是否能解决,还没找到什么套路。