本文介绍了“只出现一次的数字(二)”题目:在一个整数数组中,唯一一个数出现一次,其余数均出现三次,要求找出该唯一数。给出题目链接、输入输出示例及约束条件(数组长度 ≤10⁵,整数范围为 32 位有符号整数)。随后提供了一种位运算解法:利用长度为 32 的计数数组统计每个位上 1 的出现次数,对 3 取模后恢复唯一数的二进制表示,最终返回结果。代码实现采用 Java,核心思路是逐位累计并利用模运算消除出现三次的贡献。

本文介绍了二叉树的之字形层序遍历问题:从根节点开始,奇数层从左到右,偶数层从右到左,要求时间、空间均为O(n)。给出示例输入输出,并提供 Java 实现。解法使用 BFS,利用队列逐层遍历树节点,用布尔标记决定当前层是否逆序,必要时对本层结果列表调用 Collections.reverse 后加入最终结果,实现交替打印。

本文介绍了“BM83 字符串变形”题目:给定长度 n 的只含字母和空格的字符串,将其以空格分割的单词顺序反转,并对每个字符进行大小写互换,例如 “Hello World” → “wORLD hELLO”。要求时间、空间均为 O(n)。解法思路是先用 `split(" ", -1)` 处理可能的多空格,再从右向左遍历单词,利用 `StringBuilder` 逐个字符判断并转换大小写后拼接,单词之间补空格。代码实现简洁,满足题目约束。

该题要求读取两个以字符串形式给出的非负整数(0≤n≤10^1000),计算它们的乘积并以字符串返回。要求空间复杂度O(n),时间复杂度O(n²)。示例包括“11”“99”得到“1089”,以及“1”“0”得到“0”。参考实现直接利用 Java 的 `BigInteger` 类,将输入字符串构造为 `BigInteger`,调用 `multiply` 完成大数乘法,再将结果转换为字符串返回,代码简洁且满足题目复杂度要求。

本文介绍了在01矩阵中统计岛屿数量的问题,岛屿由上下左右相邻的'1'构成。通过示例说明输入输出及边界情况后,给出基于深度优先搜索的 Java 解法:遍历矩阵,遇到未访问的'1'时计数并递归将其连通的所有'1'置为'0',实现岛屿的消除。核心代码包括 solve 函数统计岛屿数和 dfs 函数进行四方向扩展,时间复杂度为 O(n·m)。

本文介绍了“NC54 三数之和”题目:在长度不超过3000、元素绝对值≤100的数组中找出所有满足 a+b+c=0 的唯一三元组。要求时间、空间均为 O(n²)。核心思路是先对数组排序,利用固定第一个元素后双指针在剩余区间搜索,使和为零时记录结果并通过跳过相同值实现去重。代码实现展示了排序、遍历、双指针移动以及重复元素的过滤,满足题目示例输出。