LeetCode 每日一题 2024/5/6-2024/5/12

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • 5/6 741. 摘樱桃
      • 5/7 1463. 摘樱桃 II
      • 5/8 2079. 给植物浇水
      • 5/9 2105. 给植物浇水 II
      • 5/10 2960. 统计已测试设备
      • 5/11 2391. 收集垃圾的最少总时间
      • 5/12


5/6 741. 摘樱桃

从起点到终点 再返回起点
可以看做两个人同时从起点到终点走两条路所能拿到的樱桃总和
假设两人同时走了k步 那么坐标为(x1,k-x1) (x2,k-x2)
设dp[k][x1][x2]表示两人从此时到终点能够摘到的樱桃之和最大值
倒序去除掉k 并假设x1<=x2

def cherryPickup(grid):""":type grid: List[List[int]]:rtype: int"""n = len(grid)dp = [[float('-inf')]*n for _ in range(n)]dp[0][0] = grid[0][0]for k in range(1,2*n-1):for x1 in range(min(k,n-1),max(k-n,-1),-1):for x2 in range(min(k,n-1),x1-1,-1):y1,y2=k-x1,k-x2if grid[x1][y1]==-1 or grid[x2][y2]==-1:dp[x1][x2] = float('-inf')continuev = dp[x1][x2]if x1>0:v = max(v,dp[x1-1][x2])if x2>0:v = max(v,dp[x1][x2-1])if x1>0 and x2>0:v = max(v,dp[x1-1][x2-1])v += grid[x1][y1]if x1!=x2:v += grid[x2][y2]dp[x1][x2] = vreturn max(dp[-1][-1],0)

5/7 1463. 摘樱桃 II

矩阵m*n
机器人每走一步必定下一行
所以两机器人每一步之后都在同一行
dp[k][y1][y2]表示在k行两个机器人分别在位置(k,y1) (k,y2)情况下能够得到的最大值
k=0为第一行 y1=0 y2=n-1
遍历每一行k=1~m-1
当前行增加grid[k][y1]+grid[k][y2]
如果在同一个位置y1=y2那么只加一次
y可以由上一行y-1,y,y+1三个位置走过来
考虑各个位置最大值dp[k][y1][y2]
最后找到dp[m-1][y1][y2]的最大值即可

def cherryPickup(grid):""":type grid: List[List[int]]:rtype: int"""m,n=len(grid),len(grid[0])dp = [[[float("-inf")]*n for _ in range(n)] for _ in range(m)]dp[0][0][n-1]=grid[0][0]+grid[0][n-1]for k in range(1,m):for y1 in range(n):for y2 in range(y1,n):v = grid[k][y1]if y1!=y2:v += grid[k][y2]pre = dp[k-1][y1][y2]if y1>0:pre = max(pre,dp[k-1][y1-1][y2])if y2>0:pre = max(pre,dp[k-1][y1-1][y2-1])if y2<n-1:pre = max(pre,dp[k-1][y1-1][y2+1])if y1<n-1:pre = max(pre,dp[k-1][y1+1][y2])if y2>0:pre = max(pre,dp[k-1][y1+1][y2-1])if y2<n-1:pre = max(pre,dp[k-1][y1+1][y2+1])if y2>0:pre = max(pre,dp[k-1][y1][y2-1])if y2<n-1:pre = max(pre,dp[k-1][y1][y2+1])dp[k][y1][y2] = pre+vans = 0for i in range(n):ans = max(ans,max(dp[m-1][i]))return ans

5/8 2079. 给植物浇水

依次给植物浇水 如果水不够了当前位置为x
说明在x-1位置就需要重新灌水
2*x步重新灌水并回到x-1位置
一共n个植物每次一步需要n步

def wateringPlants(plants, capacity):""":type plants: List[int]:type capacity: int:rtype: int"""n=len(plants)cur = capacityans = nfor i in range(n):print(i,cur)if plants[i]<=cur:cur -= plants[i]else:cur = capacity-plants[i]ans +=2*ireturn ans

5/9 2105. 给植物浇水 II

模拟两人浇水 一个从左 一个从右
直到两人相遇

def minimumRefill(plants, capacityA, capacityB):""":type plants: List[int]:type capacityA: int:type capacityB: int:rtype: int"""n = len(plants)l,r = 0,n-1a,b = capacityA,capacityBans = 0while l<=r:if l==r:if a>=b:if a<plants[l]:ans+=1else:if b<plants[l]:ans+=1breakif a>=plants[l]:a-=plants[l]else:ans +=1a = capacityA-plants[l]if b>=plants[r]:b-=plants[r]else:ans+=1b = capacityB-plants[r]l+=1r-=1return ans

5/10 2960. 统计已测试设备

模拟 ans为测试次数

def countTestedDevices(batteryPercentages):""":type batteryPercentages: List[int]:rtype: int"""ans=0for v in batteryPercentages:if v>ans:ans+=1return ans

5/11 2391. 收集垃圾的最少总时间

因为垃圾车只能有一辆可以工作
可以看做三种垃圾依次处理
cur记录三辆车当前位置

def garbageCollection(garbage, travel):""":type garbage: List[str]:type travel: List[int]:rtype: int"""ans = 0cur={"G":0,"P":0,"M":0}for i,g in enumerate(garbage):for v in g:while cur[v]<i:ans += travel[cur[v]]cur[v]+=1ans+=1return ans

5/12


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当下是风口的热门兼职副业,月入3万问题不大,附保姆教程!

近年来&#xff0c;短视频行业呈现出迅猛的发展势头&#xff0c;已经成为当下最受欢迎的一种形式。甚至连曾经的电商巨头京东也开始积极布局这一领域&#xff0c;投入巨资20亿元进行深入耕耘。 周周近财&#xff1a;让网络小白少花冤枉钱&#xff0c;赚取第一桶金 不知道您是…

第 8 章 机器人底盘Arduino端入口(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 8.4.2 底盘实现_01Arduino端入口 ros_arduino_bridge/ros_arduino_firmware/src/libraries/ROSArduinoBridge…

Android APP读写外置SD卡无权限 java.io.IOException: Permission denied

在物联网应用里&#xff0c;app需要对挂载SD卡读写文件&#xff0c;从 Android 4.4&#xff08;KitKat&#xff09;版本开始&#xff0c;Google 引入了一项名为 "Storage Access Framework" 的新功能&#xff0c;该功能限制了应用对外部存储的直接读写权限,要不然就是…

引入Minio

前置条件 官网&#xff1a;https://www.minio.org.cn/download.shtml#/kubernetes 命令 # 查看系统上的网络连接和监听端口信息 netstat -tpnl # 检查系统的指定端口占用情况 sudo netstat -tuln | grep 9000systemctl status firewalld # 临时关闭 systemctl stop firewall…

生信人写程序1. Perl语言模板及配置

生物信息领域常用语言 个人认为&#xff1a;是否能熟悉使用Shell(项目流程搭建)R(数据统计与可视化)Perl/Python/Java…(胶水语言&#xff0c;数据格式转换&#xff0c;软件间衔接)三门语言是一位合格生物信息工程师的标准。 生物信息常用语言非常广泛&#xff0c;我常用的有…

在macOS中开发的Django项目部署到局域网的Win10服务器上

由于windows10是日常办公电脑&#xff0c;没有服务器基本环境&#xff0c;部署工程耗费不少时间&#xff0c;记录一下。 1、安装Python 访问Python官方下载页面&#xff1a;Python Downloads&#xff0c;下载适用于Windows的安装程序并按照提示进行安装。开发环境python版本是…

Python可以自学但是千万不要乱学,避免“埋头苦学”的陷阱!

前言 Python可以自学但是千万不要乱学&#xff01; 归根结底因为学习是个反人性的过程&#xff01; 复盘没学下去的网课&#xff0c;都有以下特点&#xff1a; &#x1f605; 臣妾听不懂啊&#xff01; 初次接触编程遇到太多抽象高深的概念&#xff0c;不了解老师口中的一个…

基于51单片机的二氧化碳检测及调节系统仿真

基于51单片机的二氧化碳检测及调节系统 &#xff08;仿真&#xff0b;程序&#xff09; 功能介绍 具体功能&#xff1a; 1.二氧化碳传感器测得二氧化碳数据后经过单片机处理。 2.LCD1602实时显示&#xff0c;第一行显示测得的浓度值&#xff0c;第二行显示报警阈值。 3.测…

棱镜七彩参编《网络安全技术 软件供应链安全要求》国家标准发布

据全国标准信息公共服务平台消息显示&#xff0c;《网络安全技术 软件供应链安全要求》&#xff08;GB/T 43698-2024&#xff09;国家标准已于2024年4月25日正式发布&#xff0c;并将于2024年11月1日正式实施。棱镜七彩作为主要编制单位之一参与该国家标准的编制&#xff0c;为…

Taro 快速开始

大家好我是苏麟 , 今天聊聊Trao. 官网 : Taro 介绍 | Taro 文档 (jd.com) 点击快速开始 全局安装 CLI 初始化一个项目 选择配置 : 根据自己需求选择 安装失败先不用管 , 用前端工具打开项目 npm install 安装 , 显示安装失败 怎么解决 ? : 查看报错信息 百度 , 问 AI 工具 运…

算法练习第六十天|84. 柱状图中最大的矩形

84. 柱状图中最大的矩形 柱状图中最大的矩形 class Solution {public int largestRectangleArea(int[] heights) {int[] newHeight new int[heights.length 2];System.arraycopy(heights, 0, newHeight, 1, heights.length);newHeight[heights.length1] 0;newHeight[0] 0;…

算法学习笔记(最短路——spfa)

前置&#xff1a;bellman-ford s p f a spfa spfa是 B e l l m a n − F o r d Bellman-Ford Bellman−Ford算法的改进。在 B e l l m a n − F o r d Bellman-Ford Bellman−Ford中&#xff0c;我们在每一轮中枚举了每一条边&#xff0c;但是实际上&#xff0c;在上一轮中没有…

睿尔曼机械臂ROS控制

下载git工程 git clone https://github.com/RealManRobot/rm_robot.git安装配置 catkin build rm_msgs source devel/setup.bash catkin build source setup.bash这里注意&#xff0c;如果采用setup.sh多半不会成功&#xff0c;必须要source setup.bash文件&#xff0c;ros才…

train_gpt2_fp32.cu

源程序 llm.c/test_gpt2_fp32.cu at master karpathy/llm.c (github.com) #include <stdio.h> #include <stdlib.h> #include <math.h> #include <time.h> #include <assert.h> #include <float.h> #include <string.h> #include…

二叉树的最小深度和二叉树的节点数

二叉数的最小深度&#xff1a; 思路&#xff1a;和最大深度一样需要用到回溯递归的方法 代码大致内容 判断函数是否为空&#xff0c;如果是空return 0&#xff1b; 定义一个变量接收递归函数返回的值&#xff08;左&#xff09; 定义一个变量接收递归函数返回的值&#xf…

力扣每日一题-收集垃圾的最少总时间-2024.5.11

力扣题目&#xff1a;收集垃圾的最少总时间 题目链接: 2391.收集垃圾的最少总时间 题目描述 代码纯享版 class Solution {public int garbageCollection(String[] garbage, int[] travel) {int sum 0;int last_M -1,last_P -1, last_G -1;for(int i 0; i < garbage.…

以Azure为例的SSO

由于文章的篇幅有限&#xff0c;无法将全部的代码贴上来&#xff0c;如想要看完整案例&#xff0c;请在公众号文章中留言(其他平台很少看…毕竟最近印度同事的UI组件库搞得我好烦) 1.关于SSO 单点登录又称之为SSO,全称为 Single Sign On &#xff0c;一般在多个应用系统中&…

Github2024-05-10开日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-05-10统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4TypeScript项目4JavaScript项目1Lua项目1C项目1Rust项目1Dart项目1 RustDesk: 用Rust编写的开源远…

U盘文件剪切丢失怎么办?揭秘原因并给出恢复方法

在日常生活和工作中&#xff0c;U盘已成为我们不可或缺的数据存储和传输工具。但有时候&#xff0c;我们在对U盘中的文件进行剪切操作时&#xff0c;会遇到文件丢失的情况。这种突如其来的数据消失往往会让人感到惊慌和困惑。那么&#xff0c;为什么U盘剪切时文件会丢失呢&…

运营模型—归因分析(Attribution Analysis)

运营模型—归因分析(Attribution Analysis) 随着互联网技术和业务的发展,广告投放相关的业务也随之兴起。那么广告投放的效果评估也就随之而来。广告的投放一般都是收费模式,所以选中的渠道商的好坏直接和自己的利益挂钩。于是,「归因分析」便最早应用在了广告投放行业。(…