当前位置: 首页> 文旅> 文化 > 合肥企业网站模板建站_常州小程序开发报价_安徽seo优化规则_谷歌网站收录提交入口

合肥企业网站模板建站_常州小程序开发报价_安徽seo优化规则_谷歌网站收录提交入口

时间:2025/7/14 4:45:30来源:https://blog.csdn.net/arnold66/article/details/144368658 浏览次数:0次
合肥企业网站模板建站_常州小程序开发报价_安徽seo优化规则_谷歌网站收录提交入口

前言

        工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力,无聊之余打算用一些大厂的编程题练练手。希望通过这些分享能够帮到一些人,也希望能和看到此文的大神们沟通交流,提升自己,更希望在此期间能够找到一份理想的工作。

题目描述

        孙悟空来到了蟠桃园偷吃蟠桃。蟠桃园有N棵桃树,每棵树上都有一定数量的蟠桃。守卫将在H小时后回来。
        孙悟空每小时可以选择吃一棵树上的所有蟠桃(如果数量少于他选择的速度,则全部吃掉),并且在这一个小时内不会吃其他树上的桃子。
        孙悟空希望以尽可能慢的速度吃蟠桃,但又要确保在守卫回来之前吃完所有的桃子。
        题目要求计算孙悟空能在H小时内吃完所有桃子的最小速度K(个/小时),如果以任何速度都吃不完,则返回0。

输入

        第一行输入为N个数字,表示桃树的数量,接下来是N个数字,用空格分隔,表示每棵桃树上蟠桃的数量。
        第二行输入为一个数字H,表示守卫离开的时间(小时)。 

输出

        输出一个整数,表示孙悟空能在H小时内吃完所有桃子的最小速度K。如果以任何速度都吃不完,则输出0。 

示例

样例1

输入
2 3 4 5 
4
输出
5
解析:对于样例1,孙悟空以每小时吃5个蟠桃的速度,可以在4小时内吃完所有蟠桃,这是最小的可行速度。

样例2

输入
2 3 4 5
3
输出
0
解析:即使孙悟空以最快速度吃桃,也无法在3小时内吃完所有蟠桃,因此输出0。

样例3

输入
30 11 23 4 20
6
输出
23
解析:孙悟空需要以每小时至少吃23个蟠桃的速度,才能在6小时内吃完所有蟠桃。

解题思路

  1. 当给定小时数小于桃树棵树,无论如何也吃不完;
  2. 当给定小时数等于桃树棵树,取树上桃子最多的数目为速度;
  3. 当给定小时数大于桃树棵树,从速度1开始计算时间,直到所得时间大于给定时间为止,这时其前一个速度就是满足条件的最小速度;

题解

java实现

package huawei.e100;import java.util.Arrays;
import java.util.Scanner;/**
* @author arnold
* @date 2024年12月10日
* 
*/
public class T10 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()) {String line = sc.nextLine();if (line.equals("")) {line = sc.nextLine();}String[] tmp = line.split(" ");int[] trees = new int[tmp.length];for (int i = 0; i< tmp.length; i++) {trees[i] = Integer.parseInt(tmp[i]);}int h = sc.nextInt();int maxnum = Arrays.stream(trees).max().getAsInt();if (trees.length > h) {System.out.println(0);} else if (trees.length == h) {System.out.println(maxnum);} else {int res = run(trees, h);System.out.println(res);}}}private static int run(int[] trees, int h) {// 从小向大去找int speed = 1;int time = Integer.MAX_VALUE;while (time > h) {time = 0;for (int i = 0; i< trees.length; i++) {time += usedTime(trees[i], speed);if(time > h) {break;}}speed++;}return speed-1;}static int usedTime(int num, int speed) {int usedTime = 0;if(num > speed) {int t = num/speed;usedTime = num%speed ==0 ? t : (t +1);} else {usedTime = 1;}return usedTime;}}
关键字:合肥企业网站模板建站_常州小程序开发报价_安徽seo优化规则_谷歌网站收录提交入口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: