摘要: Leetcode150 逆波兰表达式求值 题目链接 栈 class Solution { public int evalRPN(String[] tokens) { Deque<Integer> stack = new LinkedList(); for (String s : tokens) { 阅读全文
posted @ 2024-06-18 23:27 lorange 阅读(23) 评论(0) 推荐(0)
摘要: Leetcode232 用栈实现队列 题目链接 讲解 用两个栈实现队列 每次需要出队列 或者查看队头元素 时,将输入栈的所有元素放到输出栈 class MyQueue { Stack<Integer> stackIn; Stack<Integer> stackOut; public MyQueue( 阅读全文
posted @ 2024-06-15 22:24 lorange 阅读(25) 评论(0) 推荐(0)
摘要: Leetcode 151 反转字符串单词 题目链接 讲解 此题方法很多 很重要 注重基础解法 class Solution { public String reverseWords(String s) { char[] initialArr = s.toCharArray(); //新字符数组 ch 阅读全文
posted @ 2024-06-14 09:45 lorange 阅读(22) 评论(0) 推荐(0)
摘要: Leetcode344 反转字符串 题目链接 双指针思想 交换字符即可 class Solution { public void reverseString(char[] s) { int l = 0; int r = s.length-1; while(l<r){ char tep = s[l]; 阅读全文
posted @ 2024-06-13 10:58 lorange 阅读(21) 评论(0) 推荐(0)
摘要: Leetcode454 四数相加2 题目链接 简单理解 四个数组的数 构成元组 相加为0 思想:参考力扣第一题 两数之和 才用哈希表解决问题 通过将ab数组之和存储到哈希表中,并记录次数 再通过 计算-(c+d)去匹配哈希表 如果存在 那么count+= 次数 即可 class Solution { 阅读全文
posted @ 2024-06-12 22:44 lorange 阅读(15) 评论(0) 推荐(0)
摘要: 哈希表 很重要 哈希表 哈希表 场景 一般哈希表都是用来快速判断一个元素是否出现集合里 一般来说 数组模拟 哈希set 哈希map 不同的场景 当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。 但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放 阅读全文
posted @ 2024-06-11 22:38 lorange 阅读(13) 评论(0) 推荐(0)
摘要: 链表 一定要设置虚拟头节点 很重要 掌握链表基本操作,注意链表很多操作需要获取前一个节点,以及保存临时节点 总结 阅读全文
posted @ 2024-06-08 17:13 lorange 阅读(3) 评论(0) 推荐(0)
摘要: 链表问题首先要记住 设置虚拟头节点 Leetcode24 两两交换链表节点 题目链接 思路:就是简单模拟 两两交换 要注意 链表节点的处理 一定要获取到合适的位置 比如:这一题中两个交换节点的前一个节点 注意链表保存临时节点 /** * Definition for singly-linked li 阅读全文
posted @ 2024-06-08 16:57 lorange 阅读(20) 评论(0) 推荐(0)
摘要: Leetcode203 移除链表元素 题目链接 注意 为了使后续节点方式统一 要人为设置链表头节点 链表的处理 一定要明白如何找前置节点 /** * Definition for singly-linked list. * public class ListNode { * int val; * L 阅读全文
posted @ 2024-06-07 08:51 lorange 阅读(13) 评论(0) 推荐(0)
摘要: 数组总结 主要包括 二分法 双指针 滑动窗口 模拟 二分法 循环不变量原则 拓展 考虑学习 浮点数二分 整数二分扩展题目 双指针 快慢指针 原地解决问题、双向解决问题 滑动窗口 滑动窗口的精妙之处在于根据当前子序列和大小的情况,不断调节子序列的起始位置。从而将O(n^2)的暴力解法降为O(n) 外层 阅读全文
posted @ 2024-06-05 22:38 lorange 阅读(18) 评论(0) 推荐(0)