华为 oj java题库_华为OJ题目:刷题

新入职华为的员工需要完成150道oj题目,包括不同难度级别的题目。本文介绍了一种策略,通过按难度对题目排序并优先处理高级题目,以求解完成任务所需的最少天数。示例给出了具体实现代码,展示如何在C++中解决这个问题。
摘要由CSDN通过智能技术生成

题目描述:

新入职华为的小伙伴们都有在oj上面刷题的任务,共需要刷100道初级题,45道中级题,5道高级题,其中,做出来的高级题如果超标可以当初级或者中级题,做出来的中级题如果超标可以当初级题。每天,出题的大哥会给大家出Xi道题,这Xi道题属于同一个难度级别,小伙伴们要么用一天时间把这些题全做出来,要么就不做。现在,给你每天出题大哥出的题数以及难度,请问,小伙伴们最少要挑选其中几天去做题,才能把这150道题的任务完成呢?

输入示例:

5

100 70 5 5 55

1 2 2 2 3

输出:

2

表示两天就可以完成。

自己的解决思路:

这个题目的难点在于高难度的题目可以当做低难度的题目。

现将所有的题目按难度进行分类,并对每一类进行从大到小的排序。

首先,先做难度3的题目,如果难度三的题目搞定了 ,再将剩下的难度二和难度三的题目进行排序。在此基础上,再做难度二的。做完难度二以后,再将剩下的所有题目进行排序。在此基础上再做难度一的题目。

实现代码:

#include

#include

#include

#include

#include

using namespace std;

#define LOWLEVEL 100

#define MIDLEVEL 45

#define UPLEVEL 5

bool MoreThan(int a,int

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值