算法--吃火锅

2023-11-17

题目:

和朋友一起吃火锅,有m个菜品,你的手速是n(即吃完一道菜,要经过时间n才能再去夹菜)。任一菜品下锅后,都需要经过对应时间才能熟,过时就不可口了。怎样可以吃到最多的可口的菜。

输入:

第1行:菜品数量m,手速n

第2-m行:每行两个数字,第一个数字代表下某菜的时间,第二个数字代表该菜下锅后到煮好需要的时间。

输出:

最多可以吃多少道菜

破题思路:

假设在时间点 A最后一次夹菜,从时间轴向前看,是否有时间点B也可以下筷子,如有,则代表在时间点A能吃到的菜数量比时间点B多1

上代码:

import java.util.*;

public class Main1 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int cai = scanner.nextInt();
        int hand = scanner.nextInt();
        scanner.nextLine();
        //菜煮好的时间数组
        int[] caishuleTemp = new int[cai];
        int time=0;
        for(int i=0;i< cai; i++){
            int xiacai = scanner.nextInt();
            int jingguo = scanner.nextInt();
            scanner.nextLine();
            //获取每个菜煮好的时间
            caishuleTemp[i]= xiacai+jingguo;
            //获取最后一道菜煮好的时间
            time = Math.max(time, caishuleTemp[i]);
        }
        //括号里为将int[]转为Integer[]
        List<Integer> caishule = Arrays.asList(
                     Arrays.stream(caishuleTemp).boxed().toArray(Integer[]::new));
        //all[i]为在i秒夹最后一次菜,能吃到的菜数量
        int[] all = new int[time+1];
        for(int i=1;i<time+1; i++){
            if(caishule.contains(i)){
                //如果该时间点有菜煮好,则all[i]初始化为1
                all[i]=1;
            }
            
            for(int j=i-hand;j>0;j--){
                if(caishule.contains(j)){
                    //时间i比时间点j可以多吃一个菜
                    all[i]=Math.max(all[j]+1, all[i]);
                    break;
                }    
                }
            }
        //排序后取最大值
        Arrays.sort(all);
        System.out.println(all[time]);
    }    
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

算法--吃火锅 的相关文章

随机推荐

  • 自己创建下拉框数组

    自己创建1 8的数组供下拉框选择 this scanPositions new Array 8 fill null map i index gt return label index 1 车 value index 1
  • 2023年第1季社区Task挑战赛开启,等你来战!

    社区Task挑战赛是面向社区开发者开展的代码或教程征集活动 该挑战赛为社区中热爱FISCO BCOS及周边组件的开发者提供了探索区块链技术 挑战技术难题的舞台 该挑战赛去年在社区成功举办了3季 共吸引了数百名开发者报名 前3季都有哪些有趣的
  • Java多态

    关于引用的进一步理解 交换值 因为Java方法在传递参数的时候都是值传递 那么如何通过方法实现2个数的值交换 明确 在传引用的时候 到底拿引用干了个啥 class Value public int a public class Test p
  • 【51单片机 】定时器的初始值计算 详解

    首先值得一提的是 51单片机定时器与主程序是并行工作的 就是主程序在运行的时候 定时器也在计数 计数溢出后定时器中断主程序的运行 转而执行中断服务程序 此外还有串行口 中断系统 都独立的工作 不用 CPU 干预 正文部分 好了 我们先来看初
  • ROS noetic tf demo错误处理及python版本切换

    文章目录 报错描述及解决 ubuntu20 04下python版本切换 报错描述及解决 ubuntu版本 20 04 ROS版本 noetic roslaunch turtle tf turtle tf demo launch 报错信息 t
  • 04-JavaWeb-使用Servlet+JSP+JDBC实现CRUD

    一 介绍 在掌握了JavaAPI HTML Servlet JSP JDBC等知识后 咱们利用这些知识点 打通从前端页面到后端Java 再到数据库的各个环节 通过实现一个员工的CRUD来巩固一下相关知识 项目架构如下 实现功能如下 员工列表
  • CMD之拷贝文件夹

    左右无空格 SET srcdir protobuf IDL SET dstdir install proto Y 取消提示以确认要覆盖 E 复制目录和子目录 包括空目录 I 如果目标不存在 且要复制多个文件 则假定目标必须是目录 Q 复制时
  • ES6知识点总结一:const、let、箭头函数

    1 ES6常量及变量的声明const let ES6 新增了let命令来声明变量 const用来声明常量 ES6新增的let和const拥有 块级作用域 ES5只有 全局作用域 和 函数作用域 const与var区别 var声明的变量可以重
  • 如何将本地项目上传到git仓库中

    如何将本地项目上传到git仓库中 1 打开github 新建一个仓库用来存放项目 2 复制创建仓库链接 https github com WQ181 qiji git 3 找到要上传的项目文件 比如 qj consult就是我要上传到仓库上
  • python-turtle画图

    认识Turtle Turtle是一个渲染器 基于底层图形编程结构 API 构建 主要用于场景的构建以及3D物体的绘制 3D游戏 虚拟场景等 Turtle是一个窗体程序 Turtle是Python语言中的一个很流行的绘制图像的函数库 想象一个
  • js表单案例

    js表单案例 包括阻止提交的默认行为 添加节点操作以及删除节点操作等等
  • 逻辑思维训练1200题-蓝桥杯计算思维参考

    黑格尔曾说过 逻辑是一切思考的基础 逻辑思维能力强的人能迅速 准确地把握住问题的实质 面对纷繁复杂的事情能更容易找到解决的办法 逻辑思维训练1200 题 介绍了排除法 递推法 倒推法 作图法 假设法 计算法 分析法 类比法 推理法 判断法
  • 记录下:解决fatal error: sqlite3.h: No such file or directory

    编译sqlite3数据库c语言程序时出现fatal error sqlite3 h No such file or directory 找不到头文件的问题 原来是系统没有安装函数库 执行下面语句解决 sudo apt get install
  • Linux服务器上配置Jupyter并在后台运行

    使用工具 Xshell作为终端 Python3 版本 Xmanager打开Linux图形浏览器 第一步 安装Jupyter pip3 install i https pypi douban com simple jupyter 如果己安装好
  • 用户信息表(查询数据 、 修改密码 、 添加数据)

    效果 列表的数据 添加用户的效果 修改用户表
  • Excel读取返回List<Map>工具方法

  • cocos2d-x

    http www myexception cn operating system 1222879 html http www tuicool com articles zQ3Q7n http www myexception cn opera
  • 服装商城小程序制作:打造便捷购物体验和提升销售额的利器

    随着移动互联网的发展 服装商城小程序成为各大服装品牌推广销售的重要工具 它不仅能够为用户提供便捷的购物体验 还能帮助服装商城实现更高效的销售和管理 下面给大家介绍下服装商城小程序的优点以及制作流程 让您了解并充分利用这一利器 优点 便捷购物
  • 云端部署code-server

    code server下载地址 GitHub coder code server VS Code in the browser 操作环境 本文配置环境为 aliyun ECS Debian 11 5 准备工作 Xftp 阿里云ECS云服务器
  • 算法--吃火锅

    题目 和朋友一起吃火锅 有m个菜品 你的手速是n 即吃完一道菜 要经过时间n才能再去夹菜 任一菜品下锅后 都需要经过对应时间才能熟 过时就不可口了 怎样可以吃到最多的可口的菜 输入 第1行 菜品数量m 手速n 第2 m行 每行两个数字 第一