科大讯飞正式批笔试java 4道全A,求面试机会

1、 求一个矩阵中的两个数,要求两个数不在一行一列,使得这两个数的乘积最大,输出最大积。直接暴力,5分钟做完
//矩阵
public class 题目1 {
    public static void main(String[] args){
        Scanner scanner = new Scanner (System.in);
        int n=scanner.nextInt ();
        int m = scanner.nextInt ();
        int a[][] = new int[n][m];
        int max = Integer.MIN_VALUE;
        for (int i=0;i<a.length;i++){
            for (int j=0;j<a[i].length;j++){
                a[i][j] = scanner.nextInt ();
            }
        }
        for (int i=0;i<a.length;i++){
            for (int j=0;j<a[i].length;j++){
                for (int x=0;x<a.length;x++){
                    for (int y = 0;y<a[x].length;y++){
                        if (x!=i&&y!=j) {
                            int sum = a[i][j] * a[x][y];
                            if (sum > max) {
                                max = sum;
                            }
                        }
                    }
                }
            }
        }
        System.out.println (max);
    }
}
2、按给定排序方法给数组排序,这道题花了我一个半小时的时间,将归并、快排、希尔、插入、选择、堆排都调试了一遍,最后感觉归并最像给出的结果集,不知道是不是归并
public static void main(String[] args){
        Scanner scanner = new Scanner (System.in);
        int n = scanner.nextInt ();
        int a[] = new int[n];
        for (int i=0;i<a.length;i++){
            a[i] =scanner.nextInt ();
        }
        mergeSort (a,0,a.length-1);
        for (int i=0;i<a.length;i++){
            System.out.print (a[i]+" " );
        }
    }

    private static void mergeSort(int[] a, int left, int right) {
        if (left>=right){
            return;
        }
        int mid = (left+right)>>>1;
        mergeSort (a,left,mid);
        mergeSort (a,mid+1,right);
        merge(a,left,mid,right);

    }

    private static void merge(int[] a, int left, int mid, int right) {
        int s1 = left;
        int s2 = mid+1;
        int res[]  = new int[right-left+1];
        int i=0;
        while (s1<=mid&&s2<=right){
            if (a[s1]<=a[s2]){
                res[i++] = a[s1++];
            }else {
                res[i++] = a[s2++];
            }
        }
        while (s1<=mid){
            res[i++] = a[s1++];
        }
        while (s2<=right){
            res[i++] = a[s2++];
        }
        for (int j=0;j<res.length;j++){
            a[j+left] = res[j];
        }
    }
3、给定一个数字,求转化为二进制后1的个数,没啥好说的五分钟
 public static void main(String[] args){
        Scanner scanner = new Scanner (System.in);
        Long num = scanner.nextLong ();
        String s = Long.toString (num, 2);
        String s1 = s.replaceAll ("0", "");
        System.out.println (s1.length ());
    }
4、将字符串向左移位n个,比如hellowrold向左移位5个,变成worldhello,没啥好说的10分钟,一开始的时候没有考虑到n可能大于字符串长度的情况,耽误了点时间
 public static void main(String[] args){
        Scanner scanner = new Scanner (System.in);
        String s1 = scanner.nextLine ();
        int n = scanner.nextInt ();
        if (n>=s1.length ()){
            n = n%s1.length ();
        }
        char c1 [] = new char[n];
        char c2 [] = new char[s1.length ()-n];
        for (int i=0;i<s1.length ();i++){
            if (i<n){
                c1[i] = s1.charAt (i);
            }else {
                c2[i-n] = s1.charAt (i);
            }
        }
        System.out.println (new String (c2)+new String (c1) );
    }





#笔试题目##科大讯飞#
全部评论
全a都快一个月了,也没搭理我
1
送花
回复
分享
发布于 2020-09-12 21:24
第一题我也暴力,提示我超时
1
送花
回复
分享
发布于 2020-09-12 21:44
滴滴
校招火热招聘中
官网直投
讯飞不是要求c++吗
1
送花
回复
分享
发布于 2020-09-12 22:36
+1
点赞
送花
回复
分享
发布于 2020-09-12 21:18
全A了,至今只有一个AI电话,然后就没后续了😂
点赞
送花
回复
分享
发布于 2020-09-12 21:26
请教一下第三题,正数没啥问题,如果是负数比如-3,在计算机中应该是11111111111111111111111111111101,用上面那种方法是不是就算不对了?
点赞
送花
回复
分享
发布于 2020-09-12 22:25
第二题考查快排吧,sort直接解决的😂
点赞
送花
回复
分享
发布于 2020-09-13 11:17
50min都全A了,然而还是没有面试机会
点赞
送花
回复
分享
发布于 2020-09-13 13:23
第二题看半天没看懂,直接sort发现过了,完事😅
点赞
送花
回复
分享
发布于 2020-09-13 13:58
别求讯飞了😂提前批和正式批都参加了,每次出的都挺简单,还没动静
点赞
送花
回复
分享
发布于 2020-09-13 14:20
提前批全A没消息,周围只有一个安徽的同学收到了面试
点赞
送花
回复
分享
发布于 2020-09-13 15:30
发现是本科校友啊
点赞
送花
回复
分享
发布于 2020-09-13 15:31
8月13日全A的,没搭理过我。
点赞
送花
回复
分享
发布于 2020-09-14 15:15

相关推荐

3 11 评论
分享
牛客网
牛客企业服务