首页 > 其他分享 >2532. 过桥的时间 todo

2532. 过桥的时间 todo

时间:2023-07-07 17:36:55浏览次数:33  
标签:箱子 仓库 MAX 左岸 过桥 工人 2532 todo

共有 k 位工人计划将 n 个箱子从旧仓库移动到新仓库。给你两个整数 n 和 k,以及一个二维整数数组 time ,数组的大小为 k x 4 ,其中 time[i] = [leftToRighti, pickOldi, rightToLefti, putNewi] 。

一条河将两座仓库分隔,只能通过一座桥通行。旧仓库位于河的右岸,新仓库在河的左岸。开始时,所有 k 位工人都在桥的左侧等待。为了移动这些箱子,第 i 位工人(下标从 0 开始)可以:

从左岸(新仓库)跨过桥到右岸(旧仓库),用时 leftToRighti 分钟。
从旧仓库选择一个箱子,并返回到桥边,用时 pickOldi 分钟。不同工人可以同时搬起所选的箱子。
从右岸(旧仓库)跨过桥到左岸(新仓库),用时 rightToLefti 分钟。
将箱子放入新仓库,并返回到桥边,用时 putNewi 分钟。不同工人可以同时放下所选的箱子。
如果满足下面任一条件,则认为工人 i 的 效率低于 工人 j :

leftToRighti + rightToLefti > leftToRightj + rightToLeftj
leftToRighti + rightToLefti == leftToRightj + rightToLeftj 且 i > j
工人通过桥时需要遵循以下规则:

如果工人 x 到达桥边时,工人 y 正在过桥,那么工人 x 需要在桥边等待。
如果没有正在过桥的工人,那么在桥右边等待的工人可以先过桥。如果同时有多个工人在右边等待,那么 效率最低 的工人会先过桥。
如果没有正在过桥的工人,且桥右边也没有在等待的工人,同时旧仓库还剩下至少一个箱子需要搬运,此时在桥左边的工人可以过桥。如果同时有多个工人在左边等待,那么 效率最低 的工人会先过桥。
所有 n 个盒子都需要放入新仓库,请你返回最后一个搬运箱子的工人 到达河左岸 的时间。

示例 1:

输入:n = 1, k = 3, time = [[1,1,2,1],[1,1,3,1],[1,1,4,1]]
输出:6
解释:
从 0 到 1 :工人 2 从左岸过桥到达右岸。
从 1 到 2 :工人 2 从旧仓库搬起一个箱子。
从 2 到 6 :工人 2 从右岸过桥到达左岸。
从 6 到 7 :工人 2 将箱子放入新仓库。
整个过程在 7 分钟后结束。因为问题关注的是最后一个工人到达左岸的时间,所以返回 6 。
示例 2:

输入:n = 3, k = 2, time = [[1,9,1,8],[10,10,10,10]]
输出:50
解释:
从 0 到 10 :工人 1 从左岸过桥到达右岸。
从 10 到 20 :工人 1 从旧仓库搬起一个箱子。
从 10 到 11 :工人 0 从左岸过桥到达右岸。
从 11 到 20 :工人 0 从旧仓库搬起一个箱子。
从 20 到 30 :工人 1 从右岸过桥到达左岸。
从 30 到 40 :工人 1 将箱子放入新仓库。
从 30 到 31 :工人 0 从右岸过桥到达左岸。
从 31 到 39 :工人 0 将箱子放入新仓库。
从 39 到 40 :工人 0 从左岸过桥到达右岸。
从 40 到 49 :工人 0 从旧仓库搬起一个箱子。
从 49 到 50 :工人 0 从右岸过桥到达左岸。
从 50 到 58 :工人 0 将箱子放入新仓库。
整个过程在 58 分钟后结束。因为问题关注的是最后一个工人到达左岸的时间,所以返回 50 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/time-to-cross-a-bridge

int matrixSum(int** nums, int numsSize, int* numsColSize) {
    int MAX[numsSize][2];
    int MAX1 = 0;
    int sum = 0;
    int sum1 = numsSize;  // 初始化 sum1
    int i, j;
    
    while (sum1 != 0) {
        sum1 = 0;  // 重置 sum1
        MAX1 = 0;  // 重置 MAX1
        
        for (i = 0; i < numsSize; i++) {
            MAX[i][0] = 0; // num
            MAX[i][1] = 0; // location
            
            for (j = 0; j < numsColSize[i]; j++) {
                if (nums[i][j] >= MAX[i][0]) {  // 改为判断相等
                    MAX[i][0] = nums[i][j];
                    MAX[i][1] = j;
                }
                sum1 += nums[i][j];  // 累加每个元素的值
            }
            
            nums[i][MAX[i][1]] = 0;
            
            if (MAX1 < MAX[i][0])
                MAX1 = MAX[i][0];
        }
        
        sum += MAX1;
    }
    
    return sum;
}

标签:箱子,仓库,MAX,左岸,过桥,工人,2532,todo
From: https://www.cnblogs.com/noobwei/p/17535598.html

相关文章

  • Blazor学习之旅(3)实现一个Todo应用
    最近在学习Blazor做全栈开发,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。本篇,我们通过一个简单的Todo示例应用来介绍如何实现基础的数据绑定和事件。添加Todo组件在Pages目录下,新增一个Razor组件,命名:Todo.razor@page"/todo"<h3>Todo<......
  • 【十一】JavaScript之案例-todolist
    【十一】JavaScript之案例-todolist基本页面<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><style>body,ul,input{margin:0;padding:......
  • 深入docker(todo)
    2018年接触容器,已经有好几个年头,但目前停留在使用,维护,制作镜像,编排等,方方面面都涉及到,基本够用。看过一本华为写的深入书籍,感觉一般。计划花点时间系统研究下内部机制,从如下几块进行实践:1.容器技术:namespace,cgroups,aufs2.构造容器的本质3.构造镜像的本质4.容器网络的本质5.r......
  • TodoList案例
       案例介绍文本框里面输入内容,按下回车,就可以生成待办事项。点击待办事项复选框,就可以把当前数据添加到已完成事项里面。点击已完成事项复选框,就可以把当前数据添加到待办事项里面。但是本页面内容刷新页面不会丢失。toDoList分析以及注意点刷新页面不会丢失数据,......
  • todo记事本
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <title>TodoList</title>  <style>    body{      background-color:#f6f6f6;      font-family:'......
  • MongoDB从入门到实战之.NET Core使用MongoDB开发ToDoList系统(8)-Ant Design Blazor前端
    前言前面的章节我们介绍了一些值得推荐的BlazorUI组件库,通过该篇文章的组件库介绍最终我选用AntDesignBlazor这个UI框架作为ToDoList系统的前端框架。因为在之前的工作中有使用过AntDesignVue、AntDesignAngular习惯并且喜欢AntDesign设计规范和风格,废话不多说今天我......
  • 【React工作记录一百一十二】React(Hook)+TS+axios+ant design+json server实现todoli
    前言大家好我是歌谣最近开始在做关于前端扫盲的一些只是处理花了一周左右录制了了一个hook写法的关于todoList的视频主要用于基础知识的一个使用和处理目录#前端巅峰人才交流群私信我#第一节创建项目todolist项目技术选型React(Hook)+TS+axios+antdesign+jsonserve......
  • hfile通过bulkload拷贝到hbase方式---TODO待整理
      参考链接: http://www.ithao123.cn/content-101658.html hbase之bulkload的主要类LoadIncrementalHFiles  http://www.thinksaas.cn/group/topic/233674/ bulkload执行mv和cp的区别 使用LoadIncrementalHFiles装载HFILE到HBASE的一点心得  : 数据入HBASE一般有......
  • pip install pycryptodome安装失败
    如下图所示,这里已经给出了明确的错误信息 执行:python-mpipinstall--upgradepip后再次安装即可 ......
  • TODO 怎么做一个SystemUI
    如果要从0做一个SystemUI,覆盖原来的SystemUI。什么是SystemUI:从UI上讲就是各种Window。从架构上说,就是各种SystemUI抽象类的各种实现,组成SystemUI。通过一个系统服务和SystemServer和系统交互,显示对应功能,如状态栏、通知、VolumeUI等。 TODO完善博客......