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

最近更新

算法 2022-07-10

NC119 最小的K个数

该题要求在长度 n 且可能含重复元素的数组中,找出不去重的最小 k 个数,返回任意顺序。约束为 0≤k,n≤10000,元素值在 0~1000 之间,空间 O(n),时间 O(n log n)。思路是先对数组使用 Arrays.sort 排序,再取前 k 个元素放入 ArrayList 返回。示例包括普通情况、k 为 0 以及含重复值的数组。

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

NC45 实现二叉树先序,中序和后序遍历

本文介绍了牛客网 NC45 题目——实现二叉树的先序、中序和后序遍历。要求在 O(n) 时间、O(n) 空间内完成,对空树返回空数组。解法使用三个 `ArrayList<Integer>` 分别存储三种遍历结果,递归实现 `firstOrder`、`middleOrder`、`laterOrder`,遍历结束后通过 `toIntArray` 将列表转为 `int[]` 并组装成 `int[3][]` 返回。代码简洁明了,重点在于确定存储结构、递归遍历逻辑以及列表转数组的实现。

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

NC140 排序

题目要求对长度不超过 1000、元素值在 0~10⁹ 范围的整数数组进行升序排序,基本实现需满足 O(n²) 时间、O(n) 空间,进阶要求 O(nlogn) 时间、O(n) 空间。示例展示了输入输出形式,鼓励实现多种排序算法。文中给出 Java 示例代码,直接对非空数组调用 `Arrays.sort` 完成排序并返回结果。

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

NC78 反转链表

本文介绍了单链表原地反转的实现。给定长度不超过1000的链表,要求在 O(n) 时间、O(1) 额外空间内完成反转,空链表直接返回空。核心思路是遍历链表,用三个指针依次记录当前节点、前驱节点和后继节点,在遍历过程中将当前节点的 next 指向前驱,实现逐步翻转。遍历结束后,前驱节点即为新表头。文中提供了完整的 Java 实现代码,代码结构简洁,易于理解。

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

NC1 大数加法

文章介绍了一个大数加法题目:输入两个仅含数字的字符串(长度≤100000),要求在 O(n) 时间内返回它们的和,结果仍为字符串。示例展示了普通加法和空串情况。提供的参考代码采用 Java 的 `BigInteger`,将字符串转换为 `BigInteger` 后直接相加,再转回字符串输出,满足题目要求。

NowCoder 阅读全文
Java 2022-07-04

StringUtils部分API的用法与区别

本文系统演示了 Apache Commons‑Lang3 中 `StringUtils` 常用判断 API 的使用差异。通过示例代码说明:`isEmpty` 只判断 null 与空串,不把空格算作空;`isAnyEmpty` 任意参数为 null/空串即返回 true;`isNoneEmpty` 与 `!isAnyEmpty` 等价,所有参数均非空才为 true;`isBlank` 同时把空格视为空值;`isAnyBlank`、`isNoneBlank` 分别检测是否存在或全部不存在空格或空值。文末列出 `StringUtils` 其它常用方法(trim、equals、startsWith、split、replace、pad 等)并提供官方文档链接,帮助读者快速选用合适的字符串工具。

StringUtils 阅读全文