摘要: 题目链接 380. O(1) 时间插入、删除和获取随机元素 思路 下面引用宫水三叶大佬的题解 insert 操作:使用哈希表判断 val 是否存在,存在的话返回 false,否则将其添加到 nums,更新 idx,同时更新哈希表; remove 操作:使用哈希表判断 val 是否存在,不存在的话返回 阅读全文
posted @ 2023-01-07 11:24 Frodo1124 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题目链接 73. 矩阵置零 思路1 遍历矩阵,分别使用集合 row 和 column 记录值为0的行和列。最后将 row 和 column所记录的行和列置为零。 空间复杂度: $O(m + n)$ 代码1 class Solution { public void setZeroes(int[][] 阅读全文
posted @ 2023-01-06 11:25 Frodo1124 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 题目链接 128. 最长连续序列 思路 题目要求找连续序列,且时间复杂度读要求 O(n),可以使用集合进行实现。 代码 class Solution{ public int longestConsecutive(int[] nums){ Set<Integer> numSet = new HashS 阅读全文
posted @ 2023-01-06 11:15 Frodo1124 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目链接 146. LRU 缓存 思路 使用Java中的 LinkedHashMap 类型,其数据结构示意图如下图所示。 因为该数据结构中最近添加的元素都在链表尾部,所以要让某个元素变为最近使用的状态,需要将它先删除,然后再插入。表头存储的就是最少使用的元素,使用 this.cache.keySet 阅读全文
posted @ 2023-01-06 09:38 Frodo1124 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题目链接 1. 两数之和 思路 使用 HashMap 来存储每个元素的下标及其所需要加和的数,遍历数组,检查每个数是否在 HashMap 中有对应的加和数,如果没有则把该数也加入 HashMap 中。 代码 class Solution{ public int[] twoSum(int[] nums 阅读全文
posted @ 2023-01-06 09:09 Frodo1124 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题目链接 735. 行星碰撞 思路 当分支情况太多的时候,使用 bool 变量来判断是否应该压入栈 代码 class Solution{ public int[] asteroidCollision(int[] asteroids){ Stack<Integer> stack = new Stack 阅读全文
posted @ 2023-01-05 16:23 Frodo1124 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 题目链接 1249. 移除无效的括号 思路 定义数组 valid 来记录每个字符的合法性,定义栈 stack 来存储每个左括号的下标。遍历数组。 碰到字母直接 valid[i] = true。 碰到左括号则将索引压栈,valid[i] = true。 碰到右括号进行判断 如果栈不为空,则弹出栈顶元素 阅读全文
posted @ 2023-01-05 15:45 Frodo1124 阅读(42) 评论(1) 推荐(0) 编辑
摘要: 题目链接 1209. 删除字符串中的所有相邻重复项 II 思路 用栈存储 Pair<Character, Integer> ,整数表示该字符连续出现的次数。遍历字符串 s 将其中的字符 c 依次压入栈顶并判断: c 和栈顶元素相同,则其整数部分=栈顶整数部分+1,此时如果 c 的整数部分为 k 则进 阅读全文
posted @ 2023-01-05 10:33 Frodo1124 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题目链接 1472. 设计浏览器历史记录 思路 用栈 history 模拟网页的前进后退操作,用栈 temp 来暂时存储后退所退出的网页。 代码 class BrowserHistory{ Stack<String> history; Stack<String> temp; public Brows 阅读全文
posted @ 2023-01-05 10:24 Frodo1124 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目链接 20. 有效的括号 思路 碰见左括号就入栈,碰见右括号就和检查栈顶括号是否配队。遍历完后还要检查栈是否为空,确定括号数量是合法的。 代码 class Solution{ public boolean isValid(String s){ Stack<Character> stack = n 阅读全文
posted @ 2023-01-04 15:52 Frodo1124 阅读(22) 评论(0) 推荐(0) 编辑