21xrx.com
2024-11-09 00:48:25 Saturday
登录
文章检索 我的文章 写文章
关键词:Java、面试、编程题
2023-06-11 09:28:07 深夜i     --     --

Java面试常见编程题

随着Java编程语言的广泛应用,越来越多的公司开始重视Java面试中的编程题。如果想要在面试中脱颖而出,熟练掌握面试常见的Java编程题是必不可少的。下面我们来看看一些常见的Java面试编程题。

1. 反转字符串

给定一个字符串,反转该字符串中的字符顺序。

示例:

输入:hello

输出:olleh

代码实现:

public static String reverseString(String s) {

  int len = s.length();

  StringBuilder sb = new StringBuilder(len);

  for (int i = len - 1; i >= 0; i--) {

    sb.append(s.charAt(i));

  }

  return sb.toString();

}

2. 判断字符串是否为回文字符串

给定一个字符串,判断该字符串是否为回文字符串。

示例:

输入:racecar

输出:true

代码实现:

public static boolean isPalindrome(String s) {

  int len = s.length();

  for (int i = 0; i < len / 2; i++) {

    if (s.charAt(i) != s.charAt(len - i - 1))

      return false;

  }

  return true;

}

3. 找出两个有序数组的中位数

给定两个有序数组,找出它们的中位数。时间复杂度为O(log(m+n))。

示例:

输入:nums1 = [1, 3], nums2 = [2]

输出:2.0

代码实现:

public static double findMedianSortedArrays(int[] nums1, int[] nums2) {

  int m = nums1.length;

  int n = nums2.length;

  if (m > n) {

    int[] temp = nums1;

    nums1 = nums2;

    nums2 = temp;

    int temp1 = m;

    m = n;

    n = temp1;

  }

  int iMin = 0, iMax = m, halfLen = (m + n + 1) / 2;

  while (iMin <= iMax) {

    int i = (iMin + iMax) / 2;

    int j = halfLen - i;

    if (i < iMax && nums2[j - 1] > nums1[i]) {

      iMin = iMin + 1;

    } else if (i > iMin && nums1[i - 1] > nums2[j]) {

      iMax = iMax - 1;

    } else {

      int maxLeft = 0;

      if (i == 0) {

        maxLeft = nums2[j - 1];

      } else if (j == 0) {

        maxLeft = nums1[i - 1];

      } else {

        maxLeft = Math.max(nums1[i - 1], nums2[j - 1]);

      }

      if ((m + n) % 2 == 1) {

        return maxLeft;

      }

      int minRight = 0;

      if (i == m) {

        minRight = nums2[j];

      } else if (j == n) {

        minRight = nums1[i];

      } else {

        minRight = Math.min(nums1[i], nums2[j]);

      }

      return (maxLeft + minRight) / 2.0;

    }

  }

  return 0.0;

}

以上就是几道常见的Java面试编程题,通过大量练习和熟练掌握相关知识,相信你一定能在Java面试中表现出色。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复