摘要: 分析 1.队列存数组的下标优势:既能通过索引获得值,又能得知索引以判断边界条件。 2.循环遍历数组n个。遍历的当前数cur与当前队列中的最后一个数比较 直到该队列为空 或 队列尾部的数大于cur,就把队尾的数 pollLast清出队列。然后把cur放进队列。 3.结尾判断一下是否已经走出k步(i > 阅读全文
posted @ 2025-09-04 23:46 柳成荫y 阅读(18) 评论(0) 推荐(0)
摘要: 暴力解法 设立两个数组leftmaxrightmax,leftmax存入每个元素的左边界最大值,rightmax存入每个元素的右边界最大值,取左右的最小的边界减当前元素即为当前元素可存雨水量。然后累加一下返回res。 时间复杂度:O(n) 空间复杂度:O(n) 题解代码: 点击查看代码 class 阅读全文
posted @ 2025-09-02 15:48 柳成荫y 阅读(17) 评论(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 阅读(14) 评论(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 阅读(11) 评论(0) 推荐(0)
摘要: 暴力解法: 先排序,然后找n-k下标的值。 解析: 排序算法(如快速排序、归并排序或堆排序)的平均时间复杂度通常为 O(n·log n)。这意味着随着数组规模 n 增大,排序所需的时间以 n·log n 的速度增长。空间换时间,使用 堆 存入的数据有序,大根堆和小根堆。 优化解法: 如果是大根堆,堆 阅读全文
posted @ 2025-08-29 21:16 柳成荫y 阅读(20) 评论(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 阅读(7) 评论(0) 推荐(0)
摘要: 抽象类 接口 异同点 智能家居系统 阅读全文
posted @ 2025-07-17 10:07 柳成荫y 阅读(8) 评论(0) 推荐(0)
摘要: 加油站付款模块 final 单例类 1.饿汉式单例 1)私有化类2)建立私有化静态变量对象 3)通过方法返回对象 饿汉式单例 //1.私有化类 private ehaninstance(){ } //2.创建对象 private static ehaninstance ehan = new ehan 阅读全文
posted @ 2025-07-14 20:48 柳成荫y 阅读(13) 评论(0) 推荐(0)
摘要: 一、对象到底是啥? 类是模板表,对象是填表。 1.构造器 2.this this是一个变量用在方法中得到当前对象,对象调用this获得对象本身。 this主要用来解决变量名冲突问题。 3.封装继承多态 1)封装: private私有化属性,setget方法更改属性。 4.Static 1)修饰变量: 阅读全文
posted @ 2025-07-03 21:58 柳成荫y 阅读(7) 评论(0) 推荐(0)