![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
WHY NOT ?
这个作者很懒,什么都没留下…
展开
-
1190.反转每对括号间的子串
思路:1、遇到处理括号的问题,可以想到使用栈。 2、反转字符串,可以使用StringBuffer的reverse方法,再使用StringBuffer的toString方法转换成字符串 3、遇到字母,使用StringBuffer类的append方法拼起来,保存在sb中,sb是StringBuffer类 遇到(,将(前的内容sb,即待处理的东西保存在栈中,并清空sb 遇到 ),将栈顶的内容与反转后的sb进行拼接。 class Solution { public String reverseParenthe.原创 2021-07-29 19:32:57 · 141 阅读 · 0 评论 -
Leetcode20.有效的括号
1、()、{ } 、[ ] 是成对匹配,可以联想到用hashmap的key和value保存一对括号。由于是当扫描到右括号后要去匹配左括号,因此用右括号作为key。 2、遇到左括号压栈,当遇到右括号,会想到去匹配左边最近的左括号,匹配成功则继续扫描。说明,后出现的左括号先匹配好,因此可以联想到用栈存储左括号。匹配成功则弹栈。 class Solution { public boolean isValid(String s) { int length = s.length();原创 2021-07-29 15:53:38 · 56 阅读 · 0 评论 -
146.LRU缓存机制
思路: 1)使用什么数据结构? 有key和value要想到使用HashSet,但HashSet是无序的,所以访问或者维护结点的时间顺序要想到使用链表、栈、队列。本题在get存在的键时,要将保存该键的结点放到特殊位置(链表头部用于保存最新put或者get的结点),然后删除原先位置的结点,因此使用双向链表最合适(删除结点方便,不需要遍历)。综上,需要使用HashSet和双向链表。 2)如何使用数据结构完成本题? HashSet的key和双向链表保存的key相同,HashSet的value保存的是相应key所对应原创 2021-07-27 11:22:33 · 60 阅读 · 0 评论 -
链表题:143.重排链表与234.回文链表类似
143思路:将链表结点存入ArrayList中,因为ArrayList可以通过索引查找元素,使用首尾两个指针遍历ArrayList(循环条件是:left < right,即左指针的索引<右指针的索引),根据列表的get方法取出结点,再使用结点.next改变结点的指向。 注意:1)考虑链表结点的奇偶情况,如果是奇数个结点,要提前结束循环 2)循环完毕后,注意要改变答案链表最后一个结点的指向,答案链表的最后一个结点应当指向Null. 234思路:将链表结点的value存入ArrayList中,使用首原创 2021-07-23 08:17:00 · 74 阅读 · 0 评论 -
刷leetcode注意事项 && 国外找工作网站
注意事项: 1、构建思维导图 2、坚持做笔记,记住卡壳的地方、该用的套路、题目的思路 3、每天要把当天做的题目复习几分钟,每周把一周做的题目复习几分钟 4、刷题方法:分标签刷题,每个标签至少做15-20道题目,按照频率高低来做,做的不好的题目,再做一下跟本题相似的题,加深印象。 国外找工作网站: blind 了解公司内部情况 levels.fyi 查薪水等等 ...原创 2021-07-18 17:37:08 · 92 阅读 · 0 评论