在面试中,大家经常会被问题java面试算法的相关问题,有些小伙伴面对这样的问题不知道怎么解决,那么今天我们就给大家分享一些常见的java面试算法问题,给大家做一些积累。
1. 给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组
//给出一个排序好的数组和一个数,求数组中连续元素的和等于所给数的子数组 @Test public void test() { int[] num = {1, 2, 2, 3, 4, 5, 6, 7, 8, 9}; int sum = 7; findSum(num, sum); } public void findSum(int[] num, int sum) { int left = 0; int right = 0; for (int i = 0; i < num.length; i++) { < p = "" > int curSum = 0; left = i; right = i; while (curSum < sum) { < p = "" > curSum += num[right++]; } if (curSum == sum) { for (int j = left; j < right; j++) { < p = "" > System.out.print(num[j] + " "); } System.out.println(); } } }
2、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
//这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M = 24; for (int i = 3; i <= M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i + "个月的兔子对数: " + f2); } } }
3、判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
public class lianxi02 { public static void main(String[] args) { int count = 0; for (int i = 101; i < 200; i += 2) { boolean b = false; for (int j = 2; j <= Math.sqrt(i); j++) { if (i % j == 0) { b = false; break; } else { b = true; } } if (b == true) { count++; System.out.println(i); } } System.out.println("素数个数是: " + count); } }
4、将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.*; public class lianxi04 { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print("请键入一个正整数: "); int n = s.nextInt(); int k = 2; System.out.print(n + "="); while (k <= n) { if (k == n) { System.out.println(n); break; } else if (n % k == 0) { System.out.print(k + "*"); n = n / k; } else k++; } } }
这些都是比较热门的算法问题,如果大家有需要的话,可以将本篇文章收藏,没事的时候拿出来看看,积少成多,慢慢积累自己的经验,最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。
推荐阅读: