public class SumArray {
public static int sum(int\[\] arr) {
int total = 0;
for (int num : arr) {
total += num;
}
return total;
}
public static void main(String\[\] args) {
int\[\] nums = {1, 2, 3, 4, 5};
System.out.println(sum(nums)); // 输出 15
}
}
一、数组遍历类(求和、找最大值)
- 优先用增强for循环做单纯遍历,代码简洁;需要下标操作时改用普通for循环。
- 处理数组前建议先判空,避免 NullPointerException 。
- 找最值:先把首个元素设为初始值,再逐个比对,逻辑最直观。
二、字符串判断(回文串)
- 双指针是字符串、数组对称类问题的通用解法,效率高。
- charAt() 用来取字符,左右指针相向移动,一旦字符不等直接终止判断,减少无效循环。
三、斐波那契数列(递归&迭代)
- 递归写法代码极简,但重复计算多,n偏大时效率极低、易栈溢出,仅适合理解逻辑。
- 迭代(循环)空间、时间复杂度更优,实战优先使用。
- 先处理 n=0、n=1 边界条件,是递归/循环类题目的常规习惯。
四、冒泡排序
- 排序类算法核心是比较+交换,冒泡每一轮确定一个末尾有序元素。
- 外层控制轮数,内层控制每轮比较范围,每完成一轮,比较区间就缩短一位。
- 可加标记优化:如果某一轮没有发生交换,说明数组已有序,直接跳出循环。
五、两数之和(哈希表应用)
- 哈希表(HashMap) 擅长快速查找,能把查找复杂度从O(n)降到O(1)。
- 解题思路转换:不要固定"找两个数",换成求差值,一次遍历就能完成,不用双重循环。
- 先查再存,保证不会重复使用同一个元素。