欢迎访问宙启技术站
智能推送

10个Java开发者必备的函数实例

发布时间:2023-07-02 22:34:34

1. 计算斐波那契数列

public int fibonacci(int n) {
    if (n <= 1) {
        return n;
    }
    return fibonacci(n - 1) + fibonacci(n - 2);
}

2. 判断一个数是否为素数

public boolean isPrime(int num) {
    if (num <= 1) {
        return false;
    }
    for (int i = 2; i <= Math.sqrt(num); i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}

3. 计算阶乘

public int factorial(int n) {
    if (n == 0) {
        return 1;
    }
    return n * factorial(n - 1);
}

4. 反转字符串

public String reverseString(String s) {
    if (s.isEmpty()) {
        return s;
    }
    return reverseString(s.substring(1)) + s.charAt(0);
}

5. 判断一个字符串是否为回文串

public boolean isPalindrome(String s) {
    if (s.length() <= 1) {
        return true;
    }
    if (s.charAt(0) != s.charAt(s.length() - 1)) {
        return false;
    }
    return isPalindrome(s.substring(1, s.length() - 1));
}

6. 求两个整数的最大公约数

public int gcd(int a, int b) {
    if (b == 0) {
        return a;
    }
    return gcd(b, a % b);
}

7. 判断一个字符串是否匹配正则表达式

public boolean isMatch(String s, String p) {
    if (p.isEmpty()) {
        return s.isEmpty();
    }
    boolean firstMatch = !s.isEmpty() && (p.charAt(0) == s.charAt(0) || p.charAt(0) == '.');
    if (p.length() >= 2 && p.charAt(1) == '*') {
        return (isMatch(s, p.substring(2)) || (firstMatch && isMatch(s.substring(1), p)));
    } else {
        return firstMatch && isMatch(s.substring(1), p.substring(1));
    }
}

8. 求一个整数数组的和

public int sumArray(int[] array, int start, int end) {
    if (start >= end) {
        return 0;
    }
    return array[start] + sumArray(array, start + 1, end);
}

9. 查找数组中的最大值

public int findMax(int[] array, int start, int end) {
    if (start == end) {
        return array[end];
    }
    int mid = (start + end) / 2;
    int maxLeft = findMax(array, start, mid);
    int maxRight = findMax(array, mid + 1, end);
    return Math.max(maxLeft, maxRight);
}

10. 判断一个链表是否有环

public boolean hasCycle(ListNode head) {
    if (head == null) {
        return false;
    }
    ListNode slow = head;
    ListNode fast = head.next;
    while (fast != null && fast.next != null) {
        if (slow == fast) {
            return true;
        }
        slow = slow.next;
        fast = fast.next.next;
    }
    return false;
}

以上是10个Java开发者必备的函数实例,涵盖了常见的算法和数据结构,对于提高编程能力和解决实际问题具有重要意义。