华为OD 猴子吃桃(100分)【java】A卷+B卷

news/2024/7/20 7:02:03 标签: java, 华为od, 算法

华为OD统一考试A卷+B卷 新题库说明
你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。
B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。
我将持续更新最新题目

获取更多免费题目可前往夸克网盘下载,请点击以下链接进入:

我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。打开「夸克APP」
链接:https://pan.quark.cn/s/f59329c0173b
提取码:3p8Y

题目类型:数组
题目描述:
孙悟空喜欢吃蟠桃,一天他乘守卫蟠桃园的天兵天将离开了而偷偷的来到王母娘娘的蟠桃园偷吃蟠桃。
已知蟠桃园有 N 棵蟠桃树,第 i 棵蟠桃树上有 N[i](大于 0)个蟠桃,天兵天将将在 H(不小于蟠桃树棵数)小时后回来。
孙悟空可以决定他吃蟠桃的速度 K(单位:个/小时),每个小时他会选择一颗蟠桃树,从中吃掉 K 个蟠桃,如果这棵树上的蟠桃数小于 K,他将吃掉这棵树上所有蟠桃,然后这一小时内不再吃其余蟠桃树上的蟠桃。
孙悟空喜欢慢慢吃,但仍想在天兵天将回来前将所有蟠桃吃完。
求孙悟空可以在 H 小时内吃掉所有蟠桃的最小速度 K(K 为整数)。

输入描述:
从标准输入中读取一行数字,前面数字表示每棵数上蟠桃个数,最后的数字表示天兵天将将离开的时间。

输出描述:
吃掉所有蟠桃的 最小速度 K(K 为整数)或 输入异常时输出 -1。

示例 1:

输入

java">3 11 6 7 8

输出

java">4

说明:
天兵天将8个小时后回来,孙悟空吃掉所有蟠桃的最小速度4。

第1小时全部吃完第一棵树,吃3个,
第2小时吃4个,第二棵树剩7个,
第3小时吃4个,第二棵树剩3个,
第4小时吃3个,第二棵树吃完,
第5小时吃4个,第三棵树剩2个,
第6小时吃2个,第三棵树吃完,
第7小时吃4个,第4棵树剩3个,
第8小时吃3个,第4棵树吃完。

思路分析
二分法的应用,找到满足条件的最小K。可以参考875. 爱吃香蕉的珂珂,原题。

参考代码:

java">import java.util.Arrays;
import java.util.Scanner;

public class MonkeyEatPeach {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] str = in.nextLine().split(" ");
        int[] nums = new int[str.length - 1];
        for (int i = 0; i < str.length - 1; i++) {
            // 判断是否有异常输入,非数字
            for (int j = 0; j < str[i].length(); j++) {
                char ch = str[i].charAt(j);
                if (ch >= '0' && ch <= '9') {
                    continue;
                } else {
                    System.out.println(-1);
                    return ;
                }
            }
            nums[i] = Integer.parseInt(str[i]);
        }
        int H = Integer.parseInt(str[str.length - 1]);
        Arrays.sort(nums);
        int left = 1, right = nums[nums.length - 1];
        while (left < right) {
            int mid = (right - left) / 2 + left;
            int time = 0;
            for (int num : nums) {
                time += (num + mid - 1) / mid;
            }
            if (time <= H) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        System.out.println(left);
    }
}


http://www.niftyadmin.cn/n/5107812.html

相关文章

【Java 进阶篇】深入了解 Bootstrap 按钮和图标

按钮和图标在网页设计中扮演着重要的角色&#xff0c;它们是用户与网站或应用程序交互的关键元素之一。Bootstrap 是一个流行的前端框架&#xff0c;提供了丰富的按钮样式和图标库&#xff0c;使开发者能够轻松创建吸引人的界面。在本文中&#xff0c;我们将深入探讨 Bootstrap…

SpringMVC之全局异常拦截器

在SpringMVC自动装配核心类之WebMvcAutoConfiguration内部实例化EnableWebMvcConfiguration过程中会触发其父类WebMvcConfigurationSupport内部初始化HandlerExceptionResolver。 1.WebMvcConfigurationSupport public class WebMvcConfigurationSupport implements Applicat…

ddns-go配合aliyun域名解析通过ipv6实现共享桌面

ddns-go配合aliyun域名解析通过ipv6实现共享桌面 前提&#xff1a; 必须拥有ipv6公网IP&#xff0c;测试IPv6 测试 (testipv6.cn) 如果是光猫拨号一点要选择ipv4和ipv6&#xff0c;同时要看光猫是否支持ipv6转发&#xff0c;如果不支持转发也不行&#xff0c;光猫不支持ipv6…

【ARM AMBA5 CHI 入门 12.2 -- CHI 协议层详细介绍 】

文章目录 1 协议层1.1 协议层传输通道1.2 域段1.2.1 ID域段1.2.2 其他关键域段1.2.2.1 Address1.2.2.2 Secure bit1.2.2.3 Memory Attributes1.2.2.4 Transaction attribute combinations 1.4.1 Transaction 路由1.4.2 SAM 介绍1.4.3 Node ID 1.5 节点间数据怎么传输的呢&#…

扩展某个Vue组件时会怎么做?

答题思路&#xff1a; 按照逻辑扩展和内容扩展来列举&#xff0c;逻辑扩展有&#xff1a;mixins、extends、composition api&#xff1b;内容扩展有slots&#xff1b; 分别说出他们使用方法、场景差异和问题。 作为扩展&#xff0c;还可以说说vue3中新引入的composition api…

Golang练手算法

Golang数字排列组合 描述 用 Golang 实现,将四个数进行排列组合。 题目 有 1、2、3、4 这四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 题目解决思路 可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去掉不满足条件的排列。 代码…

解决方法:从客户端(---<A href=“http://l...“)中检测到有潜在危险的 Request.Form 值。

从客户端(-----<A href"http://l...")中检测到有潜在危险的 Request.Form 值。 解决方法&#xff1a;应该是不同的.net Framework版本对代码的校验不同&#xff0c;造成在高版本操作系统&#xff08;即高.net Framework版本校验&#xff09;不兼容&#xff0c;可…

轻量级导出 Excel 标准格式

一般业务系统中都有导出到 Excel 功能&#xff0c;其实质就是把数据库里面一条条记录转换到 Excel 文件上。Java 常用的第三方类库有 Apache POI 和阿里巴巴开源的 EasyExcel 等。另外也有通过 Web 模板技术渲染 Excel 文件导出&#xff0c;这实质是 MVC 模式的延伸&#xff0c…