7.31科大讯飞四道编程题个人思路

讯飞四道编程题个人思路
第一题:
有面值1,5,10,50,100,分别对应变量:a、b、c、d、e
若有k元钱,最少多少张纸币能找零,若不能则输出-1
public class Main {

    public static int minMoney(int[] nums,int target){
        int[] money = {1,5,10,50,100};
        int count = 0;
        for (int i=4;i>=0;i--){
            int shang = target/money[i];
            int cur_temp = Math.min(nums[i],shang);
            count += cur_temp;
            target -= cur_temp * money[i];
            if (target==0){
               return count;
            }
        }
        return -1;
    }


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String[] s = scanner.nextLine().trim().split(" ");
            int[] nums = new int[s.length];
            for (int i = 0; i < s.length; i++) {
                nums[i] = Integer.parseInt(s[i]);
            }
            int target = scanner.nextInt();
            System.out.println( minMoney(nums,target));
            scanner.nextLine();
        }
    }
}
第二题:快排,自己注意处理一下输出
public class Main {

    public static void mySort(int[] nums,int low,int hight){
        int i,j,temp,t;
        if(low>hight){
            return;
        }
        i=low;
        j=hight;
        temp = nums[low];

        while (i<j){
            while (temp<nums[j] && i<j){
                j--;
            }
            while (temp>=nums[i] && i<j){
                i++;
            }
            if (i<j){
                t = nums[j];
                nums[j] = nums[i];
                nums[i] = t;
            }
        }
        nums[low] = nums[i];
        nums[i] = temp;
        prin(nums);
        System.out.println();
        mySort(nums,low,j-1);
        mySort(nums,j+1,hight);
    }

   public static void prin(int[] nums){
    for (int k = 0; k < nums.length; k++) {
        System.out.print(nums[k]);
        if (k!=nums.length-1){
            System.out.print(" ");
        }
    }
    System.out.println();
}
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int len = scanner.nextInt();
            scanner.nextLine();
            String[] s = scanner.nextLine().trim().split(" ");
            int[] nums = new int[s.length];
            for (int i = 0; i < s.length; i++) {
                nums[i] = Integer.parseInt(s[i]);
            }
            mySort(nums,0,len-1);
        }
    }
}
第三题:判断给定对角坐标,两个矩形是否相交。
public class Main {

    /**
     * 解法一:逆向思维,找不相交的情况;
     *
     */
    public static int isRectangleOverlap(int[] nums){
        if (nums[2]<nums[4] || nums[0] > nums[6]
                || nums[1]>nums[7] || nums[3]<nums[5]){
            return 0;
        }
        return 1;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String[] s = scanner.nextLine().trim().split(" ");
            int[] nums = new int[s.length];
            for (int i = 0; i < s.length; i++) {
                nums[i] = Integer.parseInt(s[i]);
            }
            System.out.println(isRectangleOverlap(nums));
        }
    }
}

最后一题:从字符串中抽出整数,注意处理负号就行了
public class Main {

    public static void convertToInt(String s){
        StringBuilder res = new StringBuilder();
        int subFlag = 0;
        for (int i = 0; i < s.length(); i++) {
            if (res.length() ==0 && subFlag == 0 && s.charAt(i) == '-'){
                subFlag = 1;
                res.append(s.charAt(i));
            }
            if (s.charAt(i)>='0' && s.charAt(i)<='9'){
                res.append(s.charAt(i));
            }
        }
        System.out.println(Long.parseLong(res.toString()));
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            String s = scanner.nextLine();
            convertToInt(s);
        }
    }
}



#科大讯飞##笔试题目##面经##秋招##笔经##校招#
全部评论

相关推荐

11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
11-08 10:39
门头沟学院 C++
点赞 评论 收藏
分享
2 9 评论
分享
牛客网
牛客企业服务