栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

力扣: 爱吃香蕉的珂珂

Java 更新时间:发布时间: 百科书网 趣学号

import java.util.Arrays;


public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int[] piles = {30,11,23,4,20};
        System.out.println(solution.minEatingSpeed(piles, 6));
    }

    public int minEatingSpeed(int[] piles, int h) {
        int maxValue = Arrays.stream(piles).max().getAsInt();
        if (piles.length == h){
            return maxValue;
        }

        int left = 1, right = maxValue, k = maxValue;
        while (left < right){
            int speed = (left + right) >> 1;
            int time = getTime(piles, speed);
            // 证明这个速度可以吃完,看看能不能找到速度更块的
            if (time <= h){
                k = speed;
                right = speed;
            } else {
                // 这个速度吃不完,咋办?吃的速度加一
                left = speed + 1;
            }
        }
        return k;
    }

    private int getTime(int[] piles, int speed){
        int countTime = 0;
        for (int pile : piles) {
            int count = pile % speed == 0 ? pile / speed : (pile / speed )+ 1;
            countTime += count;
        }
        return countTime;
    }
}

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/956815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号