Java算法小知识

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
}
}
一、数组遍历类(求和、找最大值)

1. 优先用增强for循环做单纯遍历,代码简洁;需要下标操作时改用普通for循环。

2. 处理数组前建议先判空,避免 NullPointerException 。

3. 找最值:先把首个元素设为初始值,再逐个比对,逻辑最直观。

二、字符串判断(回文串)

1. 双指针是字符串、数组对称类问题的通用解法,效率高。

2.  charAt()  用来取字符,左右指针相向移动,一旦字符不等直接终止判断,减少无效循环。

三、斐波那契数列(递归&迭代)

1. 递归写法代码极简,但重复计算多,n偏大时效率极低、易栈溢出,仅适合理解逻辑。

2. 迭代(循环)空间、时间复杂度更优,实战优先使用。

3. 先处理 n=0、n=1 边界条件,是递归/循环类题目的常规习惯。

四、冒泡排序

1. 排序类算法核心是比较+交换,冒泡每一轮确定一个末尾有序元素。

2. 外层控制轮数,内层控制每轮比较范围,每完成一轮,比较区间就缩短一位。

3. 可加标记优化:如果某一轮没有发生交换,说明数组已有序,直接跳出循环。

五、两数之和(哈希表应用)

1. 哈希表(HashMap) 擅长快速查找,能把查找复杂度从O(n)降到O(1)。

2. 解题思路转换:不要固定“找两个数”,换成求差值,一次遍历就能完成,不用双重循环。

3. 先查再存,保证不会重复使用同一个元素。

posted @ 2026-06-07 20:37  记忆环游记  阅读(6)  评论(0)    收藏  举报