常见Java面试算法题

在面试过程中,算法题是经常被问到的一个重要环节。掌握一些常见的Java面试算法题可以帮助我们更好地准备面试,展现出自己的编程能力。本文将介绍一些常见的Java面试算法题,并给出相应的代码示例。

1. 两数之和

题目描述: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的下标。

示例:

// 输入
int[] nums = {2, 7, 11, 15};
int target = 9;
// 输出
// [0, 1]

代码示例:

public int[] twoSum(int[] nums, int target) {
    Map<Integer, Integer> map = new HashMap<>();
    for (int i = 0; i < nums.length; i++) {
        int complement = target - nums[i];
        if (map.containsKey(complement)) {
            return new int[] { map.get(complement), i };
        }
        map.put(nums[i], i);
    }
    throw new IllegalArgumentException("No two sum solution");
}

2. 反转字符串

题目描述: 将一个字符串中的字符顺序进行反转。

示例:

// 输入
String s = "hello";
// 输出
// "olleh"

代码示例:

public String reverseString(String s) {
    return new StringBuilder(s).reverse().toString();
}

3. 斐波那契数列

题目描述: 输出斐波那契数列的第n个数。

示例:

// 输入
int n = 5;
// 输出
// 5

代码示例:

public int fibonacci(int n) {
    if (n <= 1) {
        return n;
    }
    int a = 0, b = 1;
    for (int i = 2; i <= n; i++) {
        int sum = a + b;
        a = b;
        b = sum;
    }
    return b;
}

序列图示例

sequenceDiagram
    participant User
    participant System
    User -> System: 发送请求
    System -> System: 处理请求
    System -> User: 返回响应

旅行图示例

journey
    title My Journey
    section Getting Ready
        Home - A
        A - B: Drive
    section Exploring
        B - C: Hike
        C - D: Hike
        D - E: Drive
    section Coming Home
        E - Home: Drive

通过上面的介绍,我们了解了一些常见的Java面试算法题,包括两数之和、反转字符串和斐波那契数列等。掌握这些算法题的解题思路和代码实现可以帮助我们在面试中更加游刃有余。希望本文对大家有所帮助!