华为OD题目:分奖金

这篇具有很好参考价值的文章主要介绍了华为OD题目:分奖金。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分奖金

知识点栈时间限制: 1s 空间限制: 256MB 限定语言: 不限
题目描述:
公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。
按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得“距离数字差值”的奖金。
如果遇不到比自己数字大的,就给自己分配随机数数量的奖金。
例如,按照工号顺序的随机数字是: 2,10,3。那么第2个员工的数字10比第1个员工的数字2大,
所以,第1个员工可以获得1
(10-2) =8。第2个员工后面没有比他数字更大的员工,
所以,他获得他分配的随机数数量的奖金,就是10。第3个员工是最后一个员工,后面也没有比他更大数字的员工,所以他得到的奖金是3.
请帮老板计算一下每位员工最终分到的奖金都是多少钱

输入描述:
第一行n表示员工数量 (包含最后一个老板)
第二是每位员工分配的随机数字
例如,
0
2 10 3
输出描述:
最终每位员工分到的奖金数量
例如,
8 10 3
补充说明
随机数字不重复,员工数量(包含老板)范围110000,随机数范围1100000

示例1
输入:
3
2 10 3
输出:
8 10 3

示例2
输入:
6
4 2 10 3 5 6
输出:
12 8 10 2 1 6

解题思路:文章来源地址https://www.toymoban.com/news/detail-438319.html

  • 使用 单调栈 ,
  • 从左往右遍历,将当前下标的值,与不为空的stack里面存放的下标的值进行比较,如果nums[stack.peek()] < nums[i] ,
  • 说明栈顶值要小于当前值,计算单调栈里存放下标的领取奖金,然后将当前值入栈,依次类推
  • 通过这种方式,单调栈里下标存放的值是单调递减的
public class My {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int len = Integer.parseInt(sc.nextLine());
        String line = sc.nextLine();
        String[] strings = line.split(" ");
        int[] array = Arrays.stream(strings).mapToInt(Integer::parseInt).toArray();

        Deque<Integer> stack = new ArrayDeque<>();
        for (int i = 0; i < array.length; i++) {

            //如果单调栈不为空, 且 当前下标对应的值比栈顶存放的下标对应的值大,设置奖金,弹出栈顶元素,然后继续循环,否则跳出
            while (!stack.isEmpty() && (array[i] > array[stack.peek()])) {
                int index = stack.peek();
                //获得“距离*数字差值”的奖金。
                array[index] = (i - index) * (array[i] - array[index]);
                stack.pop();
            }
            //将当前下标入栈
            stack.push(i);
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < array.length; i++) {
            if (i != 0) {
                sb.append(" ");
            }
            sb.append(array[i]);
        }
        System.out.println(sb);

    }
}

到了这里,关于华为OD题目:分奖金的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CTF-XXE(持续更新,欢迎分享更多相关知识点的题目)

    进来看到 然后一起看 Write 进来看到 一起看 write 反正是XXE 直接整 write 不整花里胡哨,解题在最下面 write 与博主不同,我通过下面的语句得到了三个地址,其中两个通过c段扫描可以直接出来flag。 flag出来了,输入平台却不对

    2024年02月11日
    浏览(41)
  • 华为云计算相关知识点

    云计算离不开网络基础设施,云计算中的网络分为不同的平面。 管理平面:负责整个系统的监控、操作维护(系统配置,系统加载、告警上报)和虚拟机管理(创建、删除虚拟机、虚拟机调度)等。 存储平面:主要为存储系统提供通信平面,并未虚拟机提供存储资源,用于

    2024年02月07日
    浏览(39)
  • 华为OD题目:知识图谱新词挖掘1

    知识点滑窗 时间限制: 1s 空间限制: 256MB 限定语言: 不限 题目描述: 小华负责公司知识图谱产品,现在要通过新词挖掘完善知识图谱。 新词挖掘: 给出一个待挖掘文本内容字符串Content和一个词的字符串word,找到content中所有word的新词. 新词: 使用词word的字符排列形成的字符串。

    2024年02月03日
    浏览(33)
  • 华为OD机考算法题:分奖金

    题目 分奖金 难度 难 题目说明 公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定每个人分多少钱。按照员工的工号顺序,每个人随机抽取一个数字。按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得

    2024年02月09日
    浏览(38)
  • 【字节面试】Fail-fast知识点相关知识点

    字节面试,问到的一个小知识点,这里做一下总结,其实小编之前有一篇文章,已经对此有过涉及,不过这里知识专项针对于问题,把这个知识点拎出来说一下。 什么是Fail-fast机制? Hashmap是否拥有Fail-fast机制? ConcurrentModificationException异常原因和解决方法是什么? 哪些你常

    2024年01月22日
    浏览(45)
  • [知识点整理]中科院/国科大 自然语言处理nlp 期末考试知识点整理

    本文为2022秋网安学院的自然语言处理课程期末复习知识点整理,水平有限,整理的答案可能有错误或遗漏,欢迎大家指正。 文章的第二部分内容参考了学校学姐的文章,文章写的很好,大家可以关注她: (133条消息) 【一起入门NLP】中科院自然语言处理期末考试*总复习*:考

    2024年02月09日
    浏览(50)
  • Mybatis 知识点

    1.1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架 支持定制化 SQL、存储过程及高级映射 Mybatis 几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集 MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO 为数据库中的记录 1.1.2 为什么需要 Mybatis 更方

    2024年02月14日
    浏览(83)
  • 数据库知识点

    索引本质上是一张表,保存了主键与索引字段,在对数据做频繁的查询或排序时,可在某些字段上添加索引,提高检索的的效率,降低IO成本,并可以使用索引列,对数据进行排序,降低排序的成本。盲目的添加索引是不正确的。索引表保存数据占用空间,在对数据进行增删

    2024年02月06日
    浏览(45)
  • 小程序知识点

    catchtap=\\\"stop\\\"阻止冒泡与捕获 stop(){} bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。 如在下边这个例子中,点击 inner view 会先后调用handleTap3和handleTap2(因为tap事件会冒泡到 middle view,而 middle view 阻止了 tap 事件冒泡,不再向父节点传递),点

    2024年02月04日
    浏览(35)
  • 软件架构知识点

    常用软件架构模型分类(5种) 软件架构建模方法(模型4种) 架构师分类(微软4种) 系统架构设计师的角色特质(6种) 计算机系统组成图谱 嵌入式操作系统的特点(5个) 中间件的定义 中间件的分类(8种) 嵌入式系统软件的组成架构(5层) 7层网络协议:开发系统互联

    2024年02月11日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包