54 归档分页
370 留言互动
4 核心专题

最近更新

算法 2022-07-18

NC19 连续子数组的最大和

求数组任意子数组(长度≥1)的最大和,要求时间 O(n),空间 O(1)。利用 Kadane 思路:遍历时累计当前子数组和,若前缀和为负则重置为当前元素;同时维护全局最大值。代码示例中通过 `array[i] += Math.max(0, array[i‑1])` 更新累计和,`res` 保存最大和,最终返回 `res`。该算法满足题目约束,适用于正负数混合的任意整数数组。

NowCoder 阅读全文
算法 2022-07-18

NC50 链表中的节点每k个一组翻转

本文介绍了“链表每k个节点翻转”问题:在不修改节点值、空间O(1)、时间O(n)的限制下,将链表按k为一组逆序,若不足k则保持原序。给出示例及边界情况。核心思路是先检查当前段是否至少有k个节点,若不足直接返回;否则使用迭代逆转当前k段节点,逆转后递归处理后续子链表,并将原段首节点连接到递归返回的子链表头。代码实现简洁,利用指针pre、cur、tail完成局部翻转并递归链接。

NowCoder 阅读全文
算法 2022-07-17

NC68 跳台阶

该题要求计算青蛙爬上 n 级台阶的跳法数,青蛙每次可跳 1 级或 2 级,跳法顺序不同视为不同。n 的取值在 1‒40,要求时间 O(n)、空间 O(1)。实际上跳法数等同斐波那契数列,第 n 项可由 dp[i]=dp[i‑1]+dp[i‑2] 递推得到。示例:n=2 时答案 2,n=7 时答案 21。文中给出一种基于数组的实现思路,亦可用常数空间的滚动变量进一步优化。

NowCoder 阅读全文
Java 2022-07-17

解决SpringBoot打成jar包无法加载resources下文件的问题

文章介绍了SpringBoot 打成 jar 包后在 Linux 环境中无法直接读取 resources 目录下文件(如 application.yml、ip2region.db)的常见问题,并提供了解决方案。核心思路是使用 Spring 提供的 PathMatchingResourcePatternResolver 获取资源对象,再通过 Apache Commons IO 的 FileUtils.copyInputStreamToFile 将资源流写入本地文件,从而实现对 jar 包内部资源的读取。文中给出完整代码示例,并列出所需的核心依赖(spring‑core 与 commons‑io),帮助开发者在部署时顺利加载 resources 中的文件。

SpringBoot 阅读全文
算法 2022-07-16

NC76 用两个栈实现队列

本文介绍了利用两个栈实现队列的算法要求:在 O(n) 空间内完成 n 次入队(push)和 n 次出队(pop),且每次操作时间复杂度均为 O(1)。通过在 stack1 中正常入栈,出队时若 stack2 为空则将 stack1 中全部元素倒入 stack2,实现先进先出的顺序。文章提供了示例说明操作过程,并给出 Java 实现代码,展示了 push 方法向 stack1 添加元素,pop 方法在必要时转移元素后从 stack2 弹出,实现队列的基本功能。

NowCoder 阅读全文
算法 2022-07-14

NC33 合并两个排序的链表

本文介绍了合并两个递增链表的算法,要求时间复杂度 O(n)、空间复杂度 O(1)。给出题目描述、示例及边界情况(空链表),并提供 Java 实现。核心思路是使用两个指针遍历两链表,比较当前节点值,将较小者接到结果链表尾部,并更新相应指针;首次插入时初始化头尾指针,循环结束后将剩余非空链表直接链接到结果尾部。代码实现简洁,满足题目约束。

NowCoder 阅读全文