本文介绍了 NC32 “求平方根” 编程题的要求:实现 `int sqrt(int x)`,返回 x 的整数平方根(向下取整),数据范围 0 ≤ x < 2³¹−1,空间复杂度 O(1),时间复杂度 O(log x)。示例说明输入 2 输出 1,输入 2143195649 输出 46294。提供的 Java 解法采用牛顿迭代法:从初始值 x 开始不断更新 `res = (res + x / res) / 2`,直至 `res ≤ x / res`,最终返回 `res` 即为所求平方根。

本文介绍了 NowCoder 题目 “NC103 反转字符串”。要求在 O(n) 时间、O(n) 空间内将长度≤1000 的字符串逆序输出,示例包括普通字符串和空串两种情况。给出两种 Java 解法:方法一通过字符数组遍历并逐位赋值实现逆转,方法二利用 `StringBuilder` 的 `reverse()` 方法直接返回逆序字符串。两种实现均满足题目复杂度要求。

题目要求在整数数组中找到两数之和等于目标值的下标,返回基于1的升序下标,且保证必有解。数据规模 2≤len≤10⁵,要求空间 O(n),时间 O(nlogn)(实际可用 O(n))。解法采用哈希表:遍历数组时记录每个元素的值及其下标,检查 target‑当前值 是否已存在于表中,若存在即返回对应的两个下标+1。文中提供了完整的 Java 实现代码。

该题要求在整数数组中(不去重)找出第 k 大的元素,保证答案存在,时间复杂度 O(n log n),空间复杂度 O(1)。数据规模为 0 ≤ n ≤ 10⁵,1 ≤ k ≤ n,元素值在 0 ~ 10⁹。示例说明第 k 大是按包含重复元素计数的结果。文中给出两种实现:① 直接对数组使用 Arrays.sort(),返回 a[n‑k];② 构建最大堆(PriorityQueue),先全部入堆,再弹出 k‑1 次,返回堆顶。两种方案均满足题目要求。

本文介绍了二叉树层序遍历的实现。给定节点数 ≤10⁵ 的二叉树,要求按层从左到右返回每层节点值的列表。解法采用广度优先搜索,使用队列记录当前层节点数,遍历时依次弹出节点并将其左右子节点入队,完成一层后将该层结果加入最终列表。代码实现为 Java 方法 `levelOrder(TreeNode root)`,时间复杂度 O(n),空间复杂度 O(n)。

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