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开发者必备的函数实例,涵盖了常见的算法和数据结构,对于提高编程能力和解决实际问题具有重要意义。
