摘要: 707. 设计链表 思路 使用带虚拟头结点的单链表,简化插入和删除操作。 // 单链表 class MyLinkedList { // 链表结点 class ListNode { int val; ListNode next; ListNode(int val) { this.val = val; 阅读全文
posted @ 2025-10-17 15:24 Nickey103 阅读(7) 评论(0) 推荐(0)
摘要: 203. 移除链表元素 删除链表结点 方式1:直接在原链表删除 方式2:添加一个虚拟头结点,再删除 删除链表结点操作是通过前一个结点完成的,由于头结点没有前驱结点,所以头结点的删除需要单独的处理逻辑。 通过添加一个虚拟头结点,链表中所有结点的删除操作相同。 方式1 class Solution { 阅读全文
posted @ 2025-10-17 12:13 Nickey103 阅读(11) 评论(0) 推荐(0)
摘要: 44. 开发商购买土地 前缀和 思路 可能的情况有两类,A占前 i 行,B占剩余行;A占前 j 列,B占剩余列。 若直接暴力枚举,第一层 for 循环遍历行(控制行的切分),第二层、第三层 for 循环计算A区域中元素和,时间复杂度O(n^3)。 1、计算每行的和,得到行前缀和数组horizonto 阅读全文
posted @ 2025-10-13 18:06 Nickey103 阅读(12) 评论(0) 推荐(0)
摘要: 58. 区间和(第九期模拟笔试) 前缀和 思路 前缀和的思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。 适用场景:前缀和在涉及计算区间和的问题时非常有用! import java.util.Scanner; public class Main { public static 阅读全文
posted @ 2025-10-13 17:12 Nickey103 阅读(12) 评论(0) 推荐(0)
摘要: 59. 螺旋矩阵 II 思路 用代码模拟出顺时针填充数字的过程。 每填充一圈涉及4条边:顶部、右列、底部、左列。 对每条边的处理保持一致,每条边均采用左闭右开统一处理,避免出现混乱,即循环不变量原则。 不变量:坚持相同的原则。在本题中就是坚持每条边左闭右开的原则,最右侧元素留作下一条边的起始元素进行 阅读全文
posted @ 2025-10-13 16:36 Nickey103 阅读(11) 评论(0) 推荐(0)
摘要: 209. 长度最小的子数组 滑动窗口 思路 初始化滑动窗口的起始位置 left = 0、终止位置 right = 0。 外循环先确定滑动窗口的终止位置(增大滑动窗口),找到符合条件的子序列, 根据当前子序列元素和大小的情况,在内循环中移动滑动窗口的起始位置(缩小滑动窗口),找到长度更小的且符合条件的 阅读全文
posted @ 2025-10-12 23:14 Nickey103 阅读(48) 评论(0) 推荐(0)
摘要: 977. 有序数组的平方 相向双指针 思路 nums数组非递减,平方后最大值一定在待排序区间的最两端(最左端 left 或最右端 right),每次循环取最大值添加到res数组中, 更新对应的边界缩小区间,重复上述过程直至 left > right。 class Solution { public 阅读全文
posted @ 2025-10-12 21:05 Nickey103 阅读(13) 评论(0) 推荐(0)
摘要: 977. 有序数组的平方 不停地根据错误用例给代码打补丁,最后还是会有新的错误用例,永远补不好。 下面展示一下耗时1小时产出的💩 class Solution { public int[] sortedSquares(int[] nums) { // 统计nums数组中非正数的个数 int cou 阅读全文
posted @ 2025-10-12 20:37 Nickey103 阅读(11) 评论(0) 推荐(0)
摘要: 27. 移除元素 1、暴力 解题过程 外层循环遍历nums数组,当遇到等于val的元素时,进入内层循环将后续元素均前移一位,覆盖前一个元素。 时间复杂度: O(n^2) 空间复杂度: O(1) class Solution { public int removeElement(int[] nums, 阅读全文
posted @ 2025-10-12 17:12 Nickey103 阅读(18) 评论(0) 推荐(0)
摘要: 简洁 Java中的二维数组是数组的数组 int[][] rating = new int[3][4]; 行内元素在内存中连续存储,行之间的元素不连续。 rating[0]、rating[1]、rating[2]分别指向一个一维数组 详细 进阶 **交错数组 ** // 只指定行数,不指定列数 int 阅读全文
posted @ 2025-10-12 11:16 Nickey103 阅读(15) 评论(0) 推荐(0)