摘要: 2024年7月13日 逆波兰表达式 记住遇到数字就入栈,遇到符号就取出栈顶的两个数字运算再入栈即可。 注意除法和减法是后出栈的作为被运算数,先出栈的作为运算数。 例如,5在下面,3在上面,那么遇到减法就是5-3而不是3-5。 class Solution { public int evalRPN(S 阅读全文
posted @ 2024-07-14 15:09 hailicy 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 2024年7月12日 题232. 用栈实现队列 两边倒即可,要出队列就倒到右边去,然后再回来。 class MyQueue { Stack<Integer> s1; Stack<Integer> s2; int size; public MyQueue() { s1 = new Stack<>(); 阅读全文
posted @ 2024-07-12 15:09 hailicy 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 2024年7月12日 易错: split(" ")要小心字符串有多个空格连在一起,这样会得到一些空字符串""在数组中 暂时都用substring()快速解决。 KMP暂时放一下,后面复习, 字符串右旋转: import java.util.*; public class Main{ public s 阅读全文
posted @ 2024-07-12 12:11 hailicy 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 2024年7月10日 题344. 翻转字符数组 记得用双指针,时间复杂度最低。 题541. 反转字符串II 首先自己实现一个String的reverse函数方便后面用,记得字符数组和字符串的互转方式。 然后计算有多少组2k,分组处理即可。 class Solution { public String 阅读全文
posted @ 2024-07-10 11:07 hailicy 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 2024年7月9日 题454. 四数相加II 使用哈希表,分为两块,前两个数组找出各种情况,统计次数,时间复杂度为O($n^2$),后两个数组在找到各种情况的时候直接用哈希表去处前两个数组符合的相应次数即可。 class Solution { public int fourSumCount(int[ 阅读全文
posted @ 2024-07-09 17:39 hailicy 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 2024年7月8日 内容:哈希表的应用 题242. 有效的字母异位词 字母异位词,简单的思考是用数组或哈希表记录每个字母出现的次数然后用两次循环记录,第一个加1第二个减1,最后如果有不为0的就不是。 更快的题解是先排序,然后直接比较是否相等即可。 题349. 两个数组的交集 用set做。最后用lis 阅读全文
posted @ 2024-07-08 16:24 hailicy 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 2024年7月6日 两两交换链表元素 继续用虚拟头节点,多建立几个记录指针。 题24. 两两交换链表中的节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; 阅读全文
posted @ 2024-07-06 15:23 hailicy 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 删除链表元素,技巧是设置一个虚拟头节点,这样就可以把原始头节点当做普通节点处理了,最后再返回虚拟头结点的next即可。 题203. 移除链表元素 /** * Definition for singly-linked list. * public class ListNode { * int val; 阅读全文
posted @ 2024-07-05 23:21 hailicy 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 有序数组的平方。常规方法复习冒泡排序,也可以使用双指针。因为有序数组的平方,最大值一定在两侧,最小值在中间。可以两侧往中间收拢。 2024年7月4日笔记:双指针法,两侧往中间逼近一定是从大到小,然后给res数组倒着填即可实现从小到大。 题977. 有序数组的平方 class Solution { p 阅读全文
posted @ 2024-07-04 16:11 hailicy 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 2024年7月3日学习笔记。 阅读全文
posted @ 2024-07-03 21:26 hailicy 阅读(169) 评论(0) 推荐(0) 编辑