科大讯飞7.31号笔试

研发类笔试
四道编程题
1、leetcode:零钱兑换 + 纸币的数量限制;60%
直接用的动态规划,写的零钱兑换

2、快排,输出每次变换后的序列  AC
刚开始,直接写的快排,0%,输出结果错误,后来对照了一下给定测试用例的输出和自己的输出结果,发现递归的出口改一下就可以了,大家看下代码,直接过一遍流程应该就看出来了
代码:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] array = new int[n];
        for (int i = 0; i < n; i++) {
            array[i] = in.nextInt();
        }
        quickSort(array, 0, n - 1);
    }

    public static void quickSort(int[] array, int left, int right) {
               // 改动就在这里,之前写的是left > right
        if (left >=right) {
            return;
        }
        int key = array[left];
        int i = left;
        int j = right;
        while (i < j) {
            while (i < j && array[j] >= key) {
                j--;
            }
            while (i < j && array[i] <= key) {
                i++;
            }
            if (i < j) {
                swap(array, i, j);
            }
        }
        swap(array, left, j);
        for (int k = 0; k < array.length; k++) {
            if (k == 0) {
                System.out.print(array[k]);

            } else {
                System.out.print(" " + array[k]);
            }

        }
        System.out.println();
        quickSort(array, left, i - 1);
        quickSort(array, j + 1, right);
    }

    public static void swap(int[] array, int i, int j) {
        int temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
}  
3、分别给出两个矩阵对角的坐标,判断两个矩阵是否相交;  83.3%
思路:
算出其中一个矩阵的横坐标和纵坐标的范围,判断另一个矩阵的四个点的坐标是否在那个范围里;
如果在,相交,不在就不相交;
不知道哪里出错了,只有83.3%

4、从一个字符串中提取出整数; AC
思路:
直接循环判断字符串中的字符,根据ASCII码(的亏我记得0的ASCII码是48),判断ASCII码范围在48-57的,输出;
首次出现 0 和 ’-‘ 号要做处理;
代码:
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String string = in.nextLine();
        int length = string.length();
        int flag = 0;
        for (int i = 0; i < length; i++) {
            if (flag == 0 && string.charAt(i) == '-') {
                System.out.print(string.charAt(i));
            }
            if (string.charAt(i) >= 48 && string.charAt(i) <= 57) {
                if (flag == 0 && string.charAt(i) == 48) {
                    continue;
                }
                flag++;
                System.out.print(string.charAt(i));
            }
        }
    }
}




#科大讯飞##笔试题目#
全部评论
第二题0%就很难受,对比了半天还是没找到点在哪。
点赞 回复 分享
发布于 2020-07-31 16:57
第二题跟你写的一样,输出就写错了一个字母,就没A掉,真的头疼
点赞 回复 分享
发布于 2020-07-31 16:48

相关推荐

点赞 评论 收藏
分享
来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务