本文介绍了牛客网 NC103 “反转字符串” 题目,要求在 O(n) 时间、O(n) 空间内将长度不超过 1000 的字符串逆序输出。给出两种 Java 实现:方法一遍历字符数组并手动赋值实现逆序,方法二直接利用 `StringBuilder(str).reverse()`。示例演示空串和普通串的逆序结果。

文章介绍了“两数之和”问题:在给定整数数组中寻找两数之和等于目标值的下标,返回按升序的 1‑基下标。要求时间复杂度 O(n)(或 O(nlogn))且空间 O(n)。作者提供了基于哈希表的实现:遍历数组时将已访问的数及其下标存入 map,若当前数的 complement(target‑num)已在 map 中,则直接返回其下标 +1 和当前下标 +1,实现一次遍历即可找到答案。

该文章介绍了如何寻找一个整数数组中第k大的数。题目要求时间复杂度为O(nlogn),空间复杂度为O(1)。文章提供了两种解法:一是利用`Arrays.sort()`对数组进行排序后直接返回数组中下标为`n-K`的元素;二是使用优先队列(大根堆)存储数组元素,然后弹出`K-1`次,最后队列顶端的元素即为第k大的数。两种方法均能满足题目要求,但第二种方法在空间复杂度上略高,因为优先队列需要额外的空间。示例展示了如何处理包含重复元素的数组,并强调了题目要求包含重复元素,无需去重。

该文章介绍了如何使用Java实现二叉树的三种遍历方式:先序遍历、中序遍历和后序遍历。文章针对NowCoder上的一个题目,给出了详细的代码实现,包括TreeNode类定义以及threeOrders方法,分别使用ArrayList存储三种遍历结果,并最终转换为int[][]数组返回。代码中分别实现了先序、中序和后序遍历的递归函数,并通过递归实现对二叉树节点的访问和存储。文章同时指出了时间复杂度为O(n),空间复杂度为O(n)。通过示例展示了如何处理空树和包含节点的树的遍历结果。