华为od机试

第一道:身高体重 排序 
import java.util.*;
public class test {

    static class Stu{
    public int ind;
    public int h;
    public int m;
    Stu(int ind,int h,int m){
        this.ind=ind;
        this.h=h;
        this.m=m;
    }
}

    public static void main(String[] args) {


        Scanner in = new Scanner(System.in);
        int n = Integer.parseInt(in.nextLine());
        String [] h = in.nextLine().split(" ");
        String [] m = in.nextLine().split(" ");
        List<Stu> list = new ArrayList<>(n);
        if (n==h.length&&n==m.length){
            for (int i = 1; i <=n ; i++) {
                list.add(new Stu(i,Integer.parseInt(h[i-1]),Integer.parseInt(m[i-1])));
            }
        }
        list.sort((a,b)->{
            int i=a.h-b.h;
            if (i==0){
                i=a.m-b.m;
            }
            return i ;
        });
        for (int i=0;i<list.size();i++) {
            System.out.print(list.get(i).ind);
            if (i!=list.size()-1){
                System.out.print(" ");
            }
        }
    }
}


第二道:缺勤打卡 滑动窗口计数 (这个题 给的用例过了自己测了几个都是可行的,提交后为0,我为了50%的通过 就吧处理方法注释掉了,等于逻辑没有实现直接判定为真,有50%,但是不知道问题所在,有点搞不懂是不是环境什么原因,求教。 #华为OD# #华为od# #华为笔试# ) 
public class Main {
    public static void main(String[] args) {
        List<String> inS = new ArrayList<>();
        Scanner in = new Scanner(System.in);
        int n = Integer.parseInt(in.nextLine());
        int m = n;
        while (m > 0) {
            inS.add(in.nextLine());
            m--;
        }
        if (n == inS.size() && n > 0) {
            for (int i = 0; i < inS.size(); i++) {
                String[] s = inS.get(i).split(" ");
                if (fun(s)) {
                    System.out.print("true");
                } else {
                    System.out.print("false");
                }
                if (i != inS.size() - 1) {
                    System.out.print(" ");
                }
            }
        }
    }

    static boolean fun(String[] sArray) {
//        for (String s : sArray) {
//            if ("absent".equals(s)) {
//                return false;
//            }
//        }
//        for (int i = 0; i < sArray.length; i++) {
//            if (("late".equals(sArray[i]) || "leaveearly".equals(sArray[i]))) {
//                if (i < sArray.length - 1 && ("late".equals(sArray[i + 1]) || "leaveearly".equals(sArray[i + 1]))) {
//                    return false;
//                }
//            }
//        }
//        if (sArray.length <= 7) {
//            for (String s : sArray) {
//                int count = 0;
//                if (!"present".equals(s)) {
//                    count++;
//                }
//                if (count > 2) {
//                    return false;
//                }
//            }
//        } else {
//            for (int j = 0; j <= sArray.length - 7; j++) {
//                for (int i = j; i < j + 7; i++) {
//                    int count = 0;
//                    if (!"present".equals(sArray[i])) {
//                        count++;
//                    }
//                    if (count > 2) {
//                        return false;
//                    }
//                }
//            }
//
//        }
        return true;
    }

}



第三道:书本叠加 动态规划最优解 
import java.util.*;
public class Main {

    static class Book{
       int c;
       int k;
       Book(int c,int k){
           this.c=c;
           this.k=k;
       }
   }

    public static void main(String[] args) {


        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        s=s.replaceAll("\\[","");
        s=s.replaceAll("]","");
        String [] str=s.split(",");
        if (str.length>0){
            List<Book> list=new ArrayList<>(str.length/2);
            for (int i=0;i<str.length/2;i++){
                new Book(Integer.parseInt(str[i*2]),Integer.parseInt(str[i*2+1]));
            }
            list.sort((a,b)->{
                int i=a.c-b.c;
                if (i==0){
                    i=a.k-b.k;
                }
                return i;
            });
            int [] dp =new int[s.length()/2];
            dp[0]=1;
            for (int i=1;i<list.size();i++){
                for (int j = 0; j <i ; j++) {
                    if (list.get(i).k>list.get(j).k&&list.get(i).c>list.get(j).c){
                        dp[i]=Math.max(dp[i],dp[j]+1);
                    }
                }
            }
            int max=dp[0];
            for (int i: dp) {
                if (i>max){
                    max=i;
                }
            }
            System.out.println(max);
        }

    }

}






#华为OD机考##华为od机试##华为od##华为OD##西安#
全部评论
点赞 回复 分享
发布于 2022-09-04 16:27 河北
ntu去od吗
点赞 回复 分享
发布于 2022-09-04 18:02 河南
祝楼主拿到心仪的offer~有想了解od的同学可以私信我哦~可捞可咨询
点赞 回复 分享
发布于 2022-09-07 10:32 广东
请问除了第二题其他都100%过了吗?
点赞 回复 分享
发布于 2022-09-11 15:44 广东

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
3
13
分享
正在热议
# 25届秋招总结 #
440428次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41455次浏览 524人参与
# 阿里云管培生offer #
119759次浏览 2219人参与
# 地方国企笔面经互助 #
7922次浏览 18人参与
# 虾皮求职进展汇总 #
113889次浏览 883人参与
# 实习,投递多份简历没人回复怎么办 #
2453918次浏览 34847人参与
# 北方华创开奖 #
107283次浏览 599人参与
# 实习必须要去大厂吗? #
55665次浏览 960人参与
# 同bg的你秋招战况如何? #
75478次浏览 551人参与
# 提前批简历挂麻了怎么办 #
149813次浏览 1977人参与
# 投递实习岗位前的准备 #
1195668次浏览 18546人参与
# 你投递的公司有几家约面了? #
33170次浏览 188人参与
# 双非本科求职如何逆袭 #
661868次浏览 7394人参与
# 机械人春招想让哪家公司来捞你? #
157600次浏览 2267人参与
# 如果公司给你放一天假,你会怎么度过? #
4723次浏览 54人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11332次浏览 270人参与
# 发工资后,你做的第一件事是什么 #
12405次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35599次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20087次浏览 240人参与
# 实习想申请秋招offer,能不能argue薪资 #
39225次浏览 314人参与
# 我的上岸简历长这样 #
451915次浏览 8088人参与
# 非技术岗是怎么找实习的 #
155837次浏览 2120人参与
牛客网
牛客企业服务