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.pswp.cn/web/10199.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10199.shtml
英文地址,請注明出處:http://en.pswp.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) 隨著互聯網技術和業務的發展,廣告投放相關的業務也隨之興起。那么廣告投放的效果評估也就隨之而來。廣告的投放一般都是收費模式,所以選中的渠道商的好壞直接和自己的利益掛鉤。于是,「歸因分析」便最早應用在了廣告投放行業。(…