java 算法面试题
Java算法面试题
Java是一种广泛使用的编程语言,具有很强的算法支持和丰富的算法库。在面试过程中,Java算法常常是面试官用来考察候选人编程和问题解决能力的重要方面。本文将为你介绍一些常见的Java算法面试题,并提供相应的解答和示例代码。
1. 反转字符串
题目描述:给定一个字符串,将其反转并返回。
解答示例:
```java
public class ReverseString {
public static String reverse(String str) {
StringBuilder builder = new StringBuilder();
for (int i = str.length() - 1; i >= 0; i--) {
builder.append(str.charAt(i));
}
String();
}
public static void main(String[] args) {
String str = "Hello World";
System.out.println(reverse(str)); // 输出 "dlroW olleH"
}
}
```
2. 判断回文数
题目描述:给定一个整数,判断它是否是回文数,即正着读和反着读都相同。
解答示例:
```java
public class PalindromeNumber {
public static boolean isPalindrome(int num) {
String str = String.valueOf(num);
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
public static void main(String[] args) {
int num = 12321;
System.out.println(isPalindrome(num)); // 输出 true
}
}
```
3. 查数组中的最大数和最小数
题目描述:给定一个整型数组,出数组中的最大数和最小数,并返回它们。
解答示例:
```java
public class MaxAndMinNumber {
public static int[] findMaxAndMin(int[] nums) {
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int num : nums) {
if (num > max) {
max = num;
}
if (num < min) {
min = num;
}
}
return new int[]{max, min};
}
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
int[] result = findMaxAndMin(nums);
System.out.println("Max: " + result[0] + ", Min: " + result[1]); // 输出 "Max: 5, Min: 1"
}
}
```
4. 排序链表
题目描述:给定一个链表,将其按升序排序并返回排序后的链表。
解答示例:
```javasortedlist
public class SortLinkedList {
public static ListNode sortList(ListNode head) {
if (head == null || == null) {
return head;
}
ListNode slow = head;
ListNode fast = ;
while (fast != null && != null) {
slow = ;
fast = ;
}
ListNode mid = ;
= null;
ListNode left = sortList(head);
ListNode right = sortList(mid);
return merge(left, right);
}
private static ListNode merge(ListNode left, ListNode right) {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论