摘要: 力扣 62.不同路径 思路:自顶向下,dp[i][j]表示(0,0)->(i,j)的路径和,dp数组就是当前格子可走的路径数也就是左边和上边的dp[i][j] = dp[i-1][j] + dp[i][j-1];,迭代填满二维数组,最后一个就是答案。 点击查看代码 class Solution { 阅读全文
posted @ 2025-09-23 22:32 柳成荫y 阅读(18) 评论(0) 推荐(0)
摘要: 思考 这道题实在是写不出来,听了讲解,自己尝试敲代码,思路一团浆糊。标记标记标记重点题 右指针不断向右移动 扩展子串,左指针不断向右移 压缩子串 1.先利用右指针遍历 while(right < s.length()),先什么情况不考虑最后,肯定right++。 2.嵌套while(have == 阅读全文
posted @ 2025-09-05 20:00 柳成荫y 阅读(6) 评论(0) 推荐(0)
摘要: 分析 1.队列存数组的下标优势:既能通过索引获得值,又能得知索引以判断边界条件。 2.循环遍历数组n个。遍历的当前数cur与当前队列中的最后一个数比较 直到该队列为空 或 队列尾部的数大于cur,就把队尾的数 pollLast清出队列。然后把cur放进队列。 3.结尾判断一下是否已经走出k步(i > 阅读全文
posted @ 2025-09-04 23:46 柳成荫y 阅读(9) 评论(0) 推荐(0)
摘要: 暴力解法 设立两个数组leftmaxrightmax,leftmax存入每个元素的左边界最大值,rightmax存入每个元素的右边界最大值,取左右的最小的边界减当前元素即为当前元素可存雨水量。然后累加一下返回res。 时间复杂度:O(n) 空间复杂度:O(n) 题解代码: 点击查看代码 class 阅读全文
posted @ 2025-09-02 15:48 柳成荫y 阅读(11) 评论(0) 推荐(0)
摘要: 分析: 迭代翻转每k个节点,然后递归迭代直到最后一层。 代码: 点击查看代码 class Solution { public ListNode reverseKGroup(ListNode head, int k) { //1. if(head == null || k == 1){ return 阅读全文
posted @ 2025-08-31 21:23 柳成荫y 阅读(12) 评论(0) 推荐(0)
摘要: 分析: 先用hash表存数字和次数,然后使用最小堆遍历哈希表,堆的大小为k,时间复杂度为 O(n) = n log k 代码: 点击查看代码 class Solution { public int[] topKFrequent(int[] nums, int k) { Map<Integer,Int 阅读全文
posted @ 2025-08-30 11:24 柳成荫y 阅读(7) 评论(0) 推荐(0)
摘要: 暴力解法: 先排序,然后找n-k下标的值。 解析: 排序算法(如快速排序、归并排序或堆排序)的平均时间复杂度通常为 O(n·log n)。这意味着随着数组规模 n 增大,排序所需的时间以 n·log n 的速度增长。空间换时间,使用 堆 存入的数据有序,大根堆和小根堆。 优化解法: 如果是大根堆,堆 阅读全文
posted @ 2025-08-29 21:16 柳成荫y 阅读(12) 评论(0) 推荐(0)
摘要: 题解 点击查看代码 class Solution { public String decodeString(String s) { Stack<String> stack = new Stack<>(); for(char c : s.toCharArray()){ String str = Str 阅读全文
posted @ 2025-08-28 16:08 柳成荫y 阅读(6) 评论(0) 推荐(0)
摘要: 代码块 1.静态代码块 2.实例代码块 内部类 1.成员内部类 使用方法 特别提醒 f.成员内部类不仅可以访问外部类的静态成员,也可以访问外部类的对象成员 如:public static string a = "a";直接OUTER.a即可访问 private a ; 直接a即可 s.成员内部类的实 阅读全文
posted @ 2025-07-31 12:10 柳成荫y 阅读(6) 评论(0) 推荐(0)
摘要: 抽象类 接口 异同点 智能家居系统 阅读全文
posted @ 2025-07-17 10:07 柳成荫y 阅读(4) 评论(0) 推荐(0)