2022天翼云 第一题50% 其他ac


天翼云是真懒啊 2021年的编程题拿来直接用????
第一题:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        List<int[]> input = new ArrayList<>();
        s.nextLine();
        while(n > 0){
            String[] s1 = s.nextLine().split(",");
            int[] cur = new int[2];
            cur[0] = Integer.parseInt(s1[0]);
            cur[1] = Integer.parseInt(s1[1]);
            input.add(cur);
            n--;
        }
        int length = sumLength(input);
        System.out.println(length);
    }
    public static int sumLength(List<int[]> input){
        if(input.isEmpty()){
            return 0;
        }
        int len = input.size();
        if(len == 1){
            return input.get(0)[1] - input.get(0)[0];
        }
        input.sort(new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) {
                return o1[1] - o2[0];
            }
        });
        for (int i = 1; i < len; i++) {
            if(input.get(i)[0] < input.get(i-1)[1]){
                input.get(i)[0] = input.get(i-1)[1];
                input.get(i-1)[1] = input.get(i)[0];
            }
        }
        int res = 0;
        for (int i = 0; i < len; i++) {
            if(input.get(i)[0] >= input.get(i)[1]){
                continue;
            }
            res += input.get(i)[1] - input.get(i)[0];
        }
        return res;
    }
}




第二题:
public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int[] input = new int[n];
        String s1 = s.nextLine();
        String s2 = s.nextLine();
        String[] split = s2.split(",");
        for (int i = 0; i < split.length; i++) {
            input[i] = Integer.parseInt(split[i]);
        }
        int[] res = reOrder(input);
        for (int i = 0; i < res.length - 1; i++) {
            System.out.print(res[i] + ",");
        }
        System.out.println(res[res.length - 1]);
    }

    private static int[] reOrder(int[] input) {
        int len = input.length;
        // 奇数
        List<Integer> oddList = new ArrayList<>();
        List<Integer> evenList = new ArrayList<>();
        for (int i = 0; i < len; i++) {
            if(input[i] % 2 == 0){
                evenList.add(input[i]);
            }else{
                oddList.add(input[i]);
            }
        }
        int[] res = new int[len];
        for (int i = 0; i < len; i++) {
            if(!evenList.isEmpty()){
                res[i] = evenList.remove(0);
            }else{
                res[i] = oddList.remove(0);
            }
        }
        return res;
    }
}




第三题:....第三题怎么放错了,,,跟第二题一样了

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int[] input = new int[n];
        String s1 = s.nextLine();
        String s2 = s.nextLine();
        String[] split = s2.split(",");
        for (int i = 0; i < split.length; i++) {
            input[i] = Integer.parseInt(split[i]);
        }
        int[] res = reOrder(input);
        for (int i = 0; i < res.length - 1; i++) {
            System.out.print(res[i] + ",");
        }
        System.out.println(res[res.length - 1]);
    }

    private static int[] reOrder(int[] input) {
        int len = input.length;
        // 奇数
        List<Integer> oddList = new ArrayList<>();
        List<Integer> evenList = new ArrayList<>();
        for (int i = 0; i < len; i++) {
            if(input[i] % 2 == 0){
                evenList.add(input[i]);
            }else{
                oddList.add(input[i]);
            }
        }
        int[] res = new int[len];
        for (int i = 0; i < len; i++) {
            if(!evenList.isEmpty()){
                res[i] = evenList.remove(0);
            }else{
                res[i] = oddList.remove(0);
            }
        }
        return res;
    }
}



#天翼云笔试##天翼云2023秋招#
全部评论
第一题这个思路应该不能通过类似 (1,3), (2,6), (3,5), (4,8) 的样例 差分数组能a
1 回复 分享
发布于 2022-09-14 22:22 北京
请问第一题的思路
点赞 回复 分享
发布于 2022-09-14 22:19 上海

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
点赞 评论 收藏
分享
1 15 评论
分享
牛客网
牛客企业服务