💡 ACM 模式练习说明

很多大厂机试与笔试采用 ACM 模式(需要自己处理 System.in 输入与 System.out 输出),与力扣的核心代码模式不同。本题单预设了经典题目与 ACM 输入输出处理模板,帮助你在笔试中得心应手。

Java ACM 模式通用代码模板

// Java ACM 模式两数之和标准处理模板
import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int n = in.nextInt();
            int target = in.nextInt();
            int[] nums = new int[n];
            for (int i = 0; i < n; i++) {
                nums[i] = in.nextInt();
            }
            int[] res = twoSum(nums, target);
            if (res.length == 2) {
                System.out.println(res[0] + " " + res[1]);
            } else {
                System.out.println("-1 -1");
            }
        }
    }

    public static int[] twoSum(int[] nums, int target) {
        Map valToIndex = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int complement = target - nums[i];
            if (valToIndex.containsKey(complement)) {
                return new int[]{valToIndex.get(complement), i};
            }
            valToIndex.put(nums[i], i);
        }
        return new int[0];
    }
}

🔥 力扣 Hot 100 必刷题目清单 (100 题)

# 题目名称 难度 算法题解
1 1. 两数之和 🟢 简单 查看题解
2 49. 字母异位词分组 🟡 中等 查看题解
3 128. 最长连续序列 🟡 中等 查看题解
4 53. 最大子数组和 🟡 中等 查看题解
5 56. 合并区间 🟡 中等 查看题解
6 189. 轮转数组 🟡 中等 查看题解
7 238. 除自身以外数组的乘积 🟡 中等 查看题解
8 41. 缺失的第一个正数 🔴 困难 查看题解
9 136. 只出现一次的数字 🟢 简单 查看题解
10 169. 多数元素 🟢 简单 查看题解
11 75. 颜色分类 🟡 中等 查看题解
12 31. 下一个排列 🟡 中等 查看题解
13 287. 寻找重复数 🟡 中等 查看题解
14 283. 移动零 🟢 简单 查看题解
15 11. 盛最多水的容器 🟡 中等 查看题解
16 15. 三数之和 🟡 中等 查看题解
17 42. 接雨水 🔴 困难 查看题解
18 3. 无重复字符的最长子串 🟡 中等 查看题解
19 438. 找到字符串中所有字母异位词 🟡 中等 查看题解
20 560. 和为 K 的子数组 🟡 中等 查看题解
21 239. 滑动窗口最大值 🔴 困难 查看题解
22 76. 最小覆盖子串 🔴 困难 查看题解
23 73. 矩阵置零 🟡 中等 查看题解
24 54. 螺旋矩阵 🟡 中等 查看题解
25 48. 旋转图像 🟡 中等 查看题解
26 240. 搜索二维矩阵 II 🟡 中等 查看题解
27 35. 搜索插入位置 🟢 简单 查看题解
28 74. 搜索二维矩阵 🟡 中等 查看题解
29 34. 在排序数组中查找元素的第一个和最后一个位置 🟡 中等 查看题解
30 33. 搜索旋转排序数组 🟡 中等 查看题解
31 153. 寻找旋转排序数组中的最小值 🟡 中等 查看题解
32 4. 寻找两个正序数组的中位数 🔴 困难 查看题解
33 160. 相交链表 🟢 简单 查看题解
34 206. 反转链表 🟢 简单 查看题解
35 234. 回文链表 🟢 简单 查看题解
36 141. 环形链表 🟢 简单 查看题解
37 142. 环形链表 II 🟡 中等 查看题解
38 21. 合并两个有序链表 🟢 简单 查看题解
39 2. 两数相加 🟡 中等 查看题解
40 19. 删除链表的倒数第 N 个结点 🟡 中等 查看题解
41 24. 两两交换链表中的节点 🟡 中等 查看题解
42 25. K 个一组翻转链表 🔴 困难 查看题解
43 138. 随机链表的复制 🟡 中等 查看题解
44 148. 排序链表 🟡 中等 查看题解
45 23. 合并 K 个升序链表 🔴 困难 查看题解
46 146. LRU 缓存 🟡 中等 查看题解
47 20. 有效的括号 🟢 简单 查看题解
48 155. 最小栈 🟡 中等 查看题解
49 394. 字符串解码 🟡 中等 查看题解
50 739. 每日温度 🟡 中等 查看题解
51 84. 柱状图中最大的矩形 🔴 困难 查看题解
52 215. 数组中的第K个最大元素 🟡 中等 查看题解
53 347. 前 K 个高频元素 🟡 中等 查看题解
54 295. 数据流的中位数 🔴 困难 查看题解
55 94. 二叉树的中序遍历 🟢 简单 查看题解
56 104. 二叉树的最大深度 🟢 简单 查看题解
57 226. 翻转二叉树 🟢 简单 查看题解
58 101. 对称二叉树 🟢 简单 查看题解
59 543. 二叉树的直径 🟢 简单 查看题解
60 102. 二叉树的层序遍历 🟡 中等 查看题解
61 108. 将有序数组转换为二叉搜索树 🟢 简单 查看题解
62 98. 验证二叉搜索树 🟡 中等 查看题解
63 230. 二叉搜索树中第K小的元素 🟡 中等 查看题解
64 199. 二叉树的右视图 🟡 中等 查看题解
65 114. 二叉树展开为链表 🟡 中等 查看题解
66 105. 从前序与中序遍历序列构造二叉树 🟡 中等 查看题解
67 437. 路径总和 III 🟡 中等 查看题解
68 236. 二叉树的最近公共祖先 🟡 中等 查看题解
69 124. 二叉树中的最大路径和 🔴 困难 查看题解
70 200. 岛屿数量 🟡 中等 查看题解
71 994. 腐烂的橘子 🟡 中等 查看题解
72 207. 课程表 🟡 中等 查看题解
73 208. 实现 Trie (前缀树) 🟡 中等 查看题解
74 46. 全排列 🟡 中等 查看题解
75 78. 子集 🟡 中等 查看题解
76 17. 电话号码的字母组合 🟡 中等 查看题解
77 39. 组合总和 🟡 中等 查看题解
78 22. 括号生成 🟡 中等 查看题解
79 79. 单词搜索 🟡 中等 查看题解
80 131. 分割回文串 🟡 中等 查看题解
81 51. N 皇后 🔴 困难 查看题解
82 70. 爬楼梯 🟢 简单 查看题解
83 118. 杨辉三角 🟢 简单 查看题解
84 198. 打家劫舍 🟡 中等 查看题解
85 279. 完全平方数 🟡 中等 查看题解
86 322. 零钱兑换 🟡 中等 查看题解
87 139. 单词拆分 🟡 中等 查看题解
88 300. 最长递增子序列 🟡 中等 查看题解
89 32. 最长有效括号 🔴 困难 查看题解
90 152. 乘积最大子数组 🟡 中等 查看题解
91 416. 分割等和子集 🟡 中等 查看题解
92 62. 不同路径 🟡 中等 查看题解
93 64. 最小路径和 🟡 中等 查看题解
94 5. 最长回文子串 🟡 中等 查看题解
95 1143. 最长公共子序列 🟡 中等 查看题解
96 72. 编辑距离 🔴 困难 查看题解
97 121. 买卖股票的最佳时机 🟢 简单 查看题解
98 55. 跳跃游戏 🟡 中等 查看题解
99 45. 跳跃游戏 II 🟡 中等 查看题解
100 763. 划分字母区间 🟡 中等 查看题解