文章介绍了 NC19 “连续子数组的最大和” 求解过程。给定长度 n(≤2×10⁵)的整数数组,要求在 O(n) 时间、O(1) 额外空间内找到任意非空连续子数组的最大和。示例展示了正负数混合情况下的最优子数组。提供的实现采用 Kadane 动态规划思想:遍历时将当前元素与前缀和相加,若前缀和为负则舍弃,并实时更新全局最大值。代码简洁高效,满足进阶要求。

题目要求在不改变节点值、空间复杂度 O(1)、时间复杂度 O(n) 的前提下,将链表每 k 个节点翻转,剩余不足 k 的节点保持原序。思路是先遍历 k 步定位本段尾节点 tail;若不足 k 则直接返回原链表。随后在 head 与 tail 之间使用标准的指针翻转(pre、cur、temp)完成本段逆序。翻转结束后,将原段首(现为尾)指向递归处理后的后续链表 `reverseKGroup(tail, k)`,返回新的段首 pre,即翻转后的链表头。代码简洁实现了上述过程,并通过示例验证功能。

本文介绍了 NC68 “跳台阶”题目:一只青蛙每次可跳 1 级或 2 级,求跳上 n 级台阶的不同跳法数(顺序不同计为不同),n 范围 1≤n≤40。要求时间复杂度 O(n)、空间复杂度 O(1)。示例说明 n=2 时有两种方案,n=7 时答案为 21。提供的 Java 解法使用动态规划,利用 dp[i]=dp[i‑1]+dp[i‑2] 的斐波那契递推,只保留必要的前两项即可实现 O(1) 额外空间。

文章介绍了SpringBoot 打成 jar 包后在 Linux 环境下无法直接读取 resources 目录中文件(如 application.yml、ip2region.db)的问题,并给出了解决方案。核心思路是使用 Spring 提供的 PathMatchingResourcePatternResolver 通过通配符获取资源对象,然后把资源的输入流复制到本地文件系统,确保文件在运行时可以被正常访问。示例代码展示了如何获取 ip2region.db 资源、读取其 InputStream 并使用 Apache Commons IO 的 FileUtils.copyInputStreamToFile 写入本地文件。文中还列出了所需的 Spring 核心包和 commons‑io 包的导入声明。此方法可解决 jar 包内部资源加载失败的常见场景。

本文介绍了利用两个栈实现队列的算法。通过在栈1中执行入队(push),在出队(pop)时若栈2为空则将栈1全部倒入栈2,实现先进先出。该方案在存储 n 个元素时空间复杂度为 O(n),每次插入和删除的摊销时间复杂度均为 O(1)。文中给出示例说明操作顺序及返回结果,并提供了完整的 Java 实现代码。

本文介绍了合并两个递增链表的算法。题目要求在空间复杂度 O(1)、时间复杂度 O(n) 的条件下,将长度均为 n(0≤n≤1000)的两个有序链表合并为仍保持递增顺序的新链表,节点值范围为 [-1000,1000]。核心思路是使用双指针遍历两链表,比较当前节点值,将较小的节点接入结果链表,并移动对应指针;首次插入时初始化头尾指针,随后通过 tail.next 追加节点。遍历结束后,将剩余非空链表直接挂在结果尾部。代码实现基于 ListNode 类,完整实现了上述逻辑,并通过示例验证正确性。