常见算法面试题整理

1.判断某个数字是否是回文数

说明:回文数就是原数与其倒置后的数相等,如:123321,到之后仍为123321,即为回文数

答案:

public static boolean isPlalindrome(int num) {

    int reverse =0;   

    int bNum = num;

    int mod;

    if (num <0)return false;

    //以下为把数值倒置的方法

    while (bNum !=0) {

        mod = bNum %10; //取模 123%10 = 3

        reverse = reverse *10 + mod; //reverse = 0*10+3

        //将剩余的取整数字重复操作

        bNum = bNum /10; //bNum = 123/10=12(int自动转换)

    }

return (reverse == num);

}

2.将两个有序数组合并成一个有序数组

说明:int[] nums1 = {1, 3, 5, 7, 9};

          int[] nums2 = {2, 4, 6, 8, 10};

合并后:1,2,3,4,5,6,7,8,9,10

答案:

public static int[]mergeArray(int[] num1, int[] num2) {

//变量用于存储两个集合应该被比较的索引(存入新集合就加一)

    int a =0;

    int b =0;

    int[] num3 =new int[num1.length + num2.length];

    for (int i =0; i < num3.length; i++) {

if (a < num1.length && b < num2.length) {//两数组都未遍历完,相互比较后加入

            if (num1[a] > num2[b]) {

                num3[i] = num2[b];

                b++;

            }else {

                num3[i] = num1[a];

                a++;

            }

}else if (a < num1.length) {//num2已经遍历完,无需比较,直接将剩余num1加入

            num3[i] = num1[a];

            a++;

        }else if (b < num2.length) {//num1已经遍历完,无需比较,直接将剩余num2加入

            num3[i] = num2[b];

            b++;

        }

}

    System.out.println("排序后:" + Arrays.toString(num3));

    return num3;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容