
数据结构与算法
文章平均质量分 79
平什么阿
这个作者很懒,什么都没留下…
展开
-
剑指Offer(三)
文章目录剑指 Offer 20. 表示数值的字符串剑指 Offer 21. 调整数组顺序使奇数位于偶数前面剑指 Offer 22. 链表中倒数第k个节点剑指 Offer 25. 合并两个排序的链表剑指 Offer 24. 反转链表剑指 Offer 20. 表示数值的字符串https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/说实话,考个细致class Solution { public boolean is原创 2022-04-30 21:20:13 · 366 阅读 · 0 评论 -
剑指Offer(二)
文章目录剑指 Offer 10- I. 斐波那契数列剑指 Offer 10- II. 青蛙跳台阶问题剑指 Offer 11. 旋转数组的最小数字剑指 Offer 12. 矩阵中的路径剑指 Offer 13. 机器人的运动范围剑指 Offer 10- I. 斐波那契数列https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/ /* * 1. 递归,超时 * 24 / 51 个通过测试用例,超时 */ public int fib原创 2022-04-29 16:00:11 · 401 阅读 · 0 评论 -
剑指Offer(一)
文章目录剑指 Offer 03. 数组中重复的数字剑指 Offer 04. 二维数组中的查找剑指 Offer 05. 替换空格剑指 Offer 06. 从尾到头打印链表剑指 Offer 07. 重建二叉树剑指 Offer 09. 用两个栈实现队列剑指 Offer 03. 数组中重复的数字 /* * 1. 哈希 * 执行用时:7 ms, 在所有 Java 提交中击败了32.74%的用户 * 内存消耗:50 MB, 在所有 Java 提交中击败了30.56%的用户 */ public in原创 2022-04-25 15:39:52 · 1068 阅读 · 0 评论 -
代码随想录:链表
题目来自《代码随想录》203.移除链表元素https://leetcode-cn.com/problems/remove-linked-list-elements/ public ListNode removeElements(ListNode head, int val) { if(head == null) return head; ListNode dummy = new ListNode(0, head); ListNode pre = dummy; ListNode cur原创 2022-04-19 16:18:41 · 277 阅读 · 0 评论 -
代码随想录——单调栈
题目来自《代码随想录》文章目录739. 每日温度496. 下一个更大元素 I503. 下一个更大元素 II739. 每日温度https://leetcode-cn.com/problems/daily-temperatures/ /* * 2.单调栈 * 执行用时:200 ms, 在所有 Java 提交中击败了20.93%的用户 * 内存消耗:53.2 MB, 在所有 Java 提交中击败了47.38%的用户 */ public int[] dailyTemperatures(in原创 2022-04-15 22:07:53 · 371 阅读 · 0 评论 -
代码随想录——动态规划(三):子序列系列
题目来自《代码随想录》文章目录300. 最长递增子序列674. 最长连续递增序列718. 最长重复子数组1143. 最长公共子序列300. 最长递增子序列https://leetcode-cn.com/problems/longest-increasing-subsequence/注意,本题未要求连续 /* * 定义 dp[i] 为考虑前 i个元素,以第 i个数字结尾的最长上升子序列的长度, * 注意 nums[i] 必须被选取。 */ public int lengthOfLIS(原创 2022-04-13 15:21:03 · 383 阅读 · 0 评论 -
代码随想录——动态规划(二):打家劫舍系列,买卖股票系列
题目来自《代码随想录》文章目录377. 组合总和 Ⅳ70. 爬楼梯322. 零钱兑换279. 完全平方数377. 组合总和 Ⅳ完全背包问题看要求求的是组合数还是排列数 //如果求组合数就是外层for循环遍历物品,内层for遍历背包。 //如果求排列数就是外层for遍历背包,内层for循环遍历物品。 public int combinationSum4(int[] nums, int target) { int[] dp = new int[target+1]; dp[0] = 1;原创 2022-04-09 20:29:57 · 1069 阅读 · 0 评论 -
代码随想录——动态规划(一)
题目来自《代码随想录》文章目录509. 斐波那契数70. 爬楼梯746. 使用最小花费爬楼梯62. 不同路径63. 不同路径 II343. 整数拆分96. 不同的二叉搜索树509. 斐波那契数https://leetcode-cn.com/problems/fibonacci-number/ /* * 1. 平什么秒过版,递归 */ public int fib(int n) { if( n <= 1 ) return n; return fib(n-1) + fib(n-原创 2022-04-07 13:07:27 · 942 阅读 · 0 评论 -
代码随想录——贪心
题目来自《代码随想录》文章目录455. 分发饼干376. 摆动序列53. 最大子数组和122. 买卖股票的最佳时机 II55. 跳跃游戏45. 跳跃游戏 II1005. K 次取反后最大化的数组和455. 分发饼干https://leetcode-cn.com/problems/assign-cookies/ /** * 执行用时:7 ms, 在所有 Java 提交中击败了99.93%的用户 * 内存消耗:42.5 MB, 在所有 Java 提交中击败了12.66%的用户 * @para原创 2022-04-03 16:58:44 · 4392 阅读 · 0 评论 -
代码随想录——回溯
题目来自《代码随想录》文章目录77. 组合216. 组合总和 III17. 电话号码的字母组合77. 组合https://leetcode-cn.com/problems/combinations/不剪枝剪注意:① res.add(path);//!!这里不能直接加path!!因为path会变空!!② com(n, k, i+1); //这里不能是s+1!得是i+1!!! /* * 1. 方法一:不剪枝 * 执行用时:14 ms, 在所有 Java 提交中击败了54.71%的用原创 2022-03-30 17:56:19 · 1175 阅读 · 0 评论 -
代码随想录——二叉树(三):二叉搜索树,公共祖先问题,二叉搜索树修改构造
题目来自:《代码随想录》二叉树部分文章目录617. 合并二叉树700. 二叉搜索树中的搜索98. 验证二叉搜索树617. 合并二叉树https://leetcode-cn.com/problems/merge-two-binary-trees/递归迭代。注意左右顺序 /* * 1.递归法 * 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 * 内存消耗:41 MB, 在所有 Java 提交中击败了61.53%的用户 */ public TreeNo原创 2022-03-25 17:58:24 · 1056 阅读 · 0 评论 -
代码随想录——二叉树(二):对称,平衡,遍历路径,二叉树最左(最右同理),构造二叉树
题目来自:https://www.programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E7%A7%8D%E7%B1%BB文章目录1. 对称二叉树101. 对称二叉树100. 相同的树572. 另一棵树的子树2. 平衡二叉树110. 平衡二叉树3. 二叉树路径257. 二叉树的所有路径1. 对称二叉树101.原创 2022-03-19 17:15:34 · 1097 阅读 · 0 评论 -
代码随想录——二叉树(一):前中后序遍历,层序遍历,翻转
题目来自:https://www.programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E7%A7%8D%E7%B1%BB文章目录1. 二叉树理论基础1.1 二叉树种类1.2 二叉树存储方式1.3 二叉树遍历方式1.4 二叉树的定义(java)2. 二叉树的遍历144. 二叉树的前序遍历94. 二叉树的中序遍历1原创 2022-03-17 19:50:45 · 1334 阅读 · 0 评论 -
代码随想录——栈与队列
题目来自:https://www.programmercarl.com/%E6%A0%88%E4%B8%8E%E9%98%9F%E5%88%97%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html文章目录1. 栈和队列的基本操作队列的基本操作栈的基本操作232. 用栈实现队列225. 用队列实现栈20. 有效的括号150. 逆波兰表达式求值1. 栈和队列的基本操作队列的基本操作 /* * 抛出异常 返回特殊值 * 插入:add(e) offer(e)原创 2022-03-16 18:45:09 · 1456 阅读 · 0 评论 -
代码随想录——字符串
文章目录344. 反转字符串541. 反转字符串 II剑指 Offer 05. 替换空格151. 翻转字符串里的单词剑指 Offer 58 - II. 左旋转字符串28. 实现 strStr()344. 反转字符串https://leetcode-cn.com/problems/reverse-string/ public void reverseString(char[] s) { int l = 0; int r = s.length - 1; while(l<原创 2022-03-13 17:13:49 · 468 阅读 · 0 评论 -
代码随想录——哈希表
题目来自:https://www.programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E5%93%88%E5%B8%8C%E8%A1%A8文章目录一、数组作为哈希表242. 有效的字母异位词383. 赎金信49. 字母异位词分组(未完成)438. 找到字符串中所有字母异位词二、set作为哈希表349. 两个数组的交集三、map作为哈希表350. 两个数组的交集 II454. 四数相原创 2022-03-08 21:32:50 · 514 阅读 · 0 评论 -
代码随想录——数组
题目来自:https://www.programmercarl.com/%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E6%95%B0%E7%BB%84%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80文章目录1. 二分法704. 二分查找34. 在排序数组中查找元素的第一个和最后一个位置(***)35. 搜索插入位置69. x 的平方根367. 有效的完全平方数2. 双指针27. 移除元素26. 删除有序数原创 2022-03-08 17:16:16 · 698 阅读 · 0 评论 -
数据结构与算法:链表
题目来自LeetBook 系列:《链表》——https://leetcode-cn.com/leetbook/read/linked-list/x6ybqh/文章目录单链表No.707 设计链表双指针技巧No.141 环形链表No.142 环形链表2No.160 相交链表No.19 删除链表倒数第N个结点经典问题双链表小结单链表No.707 设计链表https://leetcode-cn.com/problems/design-linked-list/第一次写很多细节需要注意。头部和尾部添加别单独原创 2022-02-27 00:19:31 · 598 阅读 · 0 评论 -
数据结构与算法:数组和字符串
文章目录1. 数组简介No.1991 找到数组的中间位置No.35 搜索插入位置No.56 合并区间2. 二维数组No.48 旋转图像No.73 矩阵置01. 数组简介No.1991 找到数组的中间位置https://leetcode-cn.com/problems/find-the-middle-index-in-array/原始思路:先遍历一遍得到总和,再从左开始遍历累加,直到前缀和为总和一半错误1:for遍历没有遍历第一个数错误2:没有判断当前和是否为偶数(奇数除以2即可以是也可以是1和-原创 2022-02-21 17:07:05 · 910 阅读 · 0 评论