LeetCode 每日一題 2025/5/5-2025/5/11

記錄了初步解題思路 以及本地實現代碼;并不一定為最優 也希望大家能一起探討 一起進步


目錄

      • 5/5 790. 多米諾和托米諾平鋪
      • 5/6 1920. 基于排列構建數組
      • 5/7 3341. 到達最后一個房間的最少時間 I
      • 5/8 3342. 到達最后一個房間的最少時間 II
      • 5/9 3343. 統計平衡排列的數目
      • 5/10 2918. 數組的最小相等和
      • 5/11 1550. 存在連續三個奇數的數組


5/5 790. 多米諾和托米諾平鋪

dp
假設dp[i][x]為第i列狀態 0一個沒有鋪 1上方格子被鋪 2下方格子被鋪 3兩個格子都被鋪
dp[i][0] = dp[i-1][3]
dp[i][1] = dp[i-1][0]+dp[i-1][2]
dp[i][2] = dp[i-1][0]+dp[i-1][1]
dp[i][3] = dp[i-1][0]+dp[i-1][1]+dp[i-1][2]+dp[i-1][3]

def numTilings(n):""":type n: int:rtype: int"""MOD=10**9+7dp = [[0]*4 for _ in range(n+1)]dp[0][3]=1for i in range(1,n+1):dp[i][0] = dp[i-1][3]dp[i][1] = (dp[i-1][0]+dp[i-1][2])%MODdp[i][2] = (dp[i-1][0]+dp[i-1][1])%MODdp[i][3] = (dp[i-1][0]+dp[i-1][1]+dp[i-1][2]+dp[i-1][3])%MODreturn dp[n][3]

5/6 1920. 基于排列構建數組

按照要求構建

def buildArray(nums):""":type nums: List[int]:rtype: List[int]"""return [nums[nums[i]] for i in range(len(nums))]

5/7 3341. 到達最后一個房間的最少時間 I

ans[x][y]記錄到達x,y位置的最少時間
dijkstra 根據x,y得到到他周圍最短時間

def minTimeToReach(moveTime):""":type moveTime: List[List[int]]:rtype: int"""import heapqn,m=len(moveTime),len(moveTime[0])ans=[[float("inf")]*m for _ in range(n)]ans[0][0]=0steps=[(1,0),(-1,0),(0,1),(0,-1)]l=[(0,0,0)]while True:d,i,j=heapq.heappop(l)if i==n-1 and j==m-1:return dif d>ans[i][j]:continuefor dx,dy in steps:x,y=i+dx,j+dyif 0<=x<n and 0<=y<m:newd = max(d,moveTime[x][y])+1if newd<ans[x][y]:ans[x][y]=newdheapq.heappush(l, (newd,x,y))

5/8 3342. 到達最后一個房間的最少時間 II

ans[x][y]記錄到達x,y位置的最少時間
dijkstra 根據x,y得到到他周圍最短時間
每走一步耗時在1,2之間變化 根據位置和的奇偶性可以判斷 x+y偶數耗時1 奇數耗時2

def minTimeToReach(moveTime):""":type moveTime: List[List[int]]:rtype: int"""import heapqn,m=len(moveTime),len(moveTime[0])ans=[[float("inf")]*m for _ in range(n)]ans[0][0]=0steps=[(1,0),(-1,0),(0,1),(0,-1)]l=[(0,0,0)]while True:d,i,j=heapq.heappop(l)if i==n-1 and j==m-1:return dif d>ans[i][j]:continueadd = (i+j)%2for dx,dy in steps:x,y=i+dx,j+dyif 0<=x<n and 0<=y<m:newd = max(d,moveTime[x][y])+1+addif newd<ans[x][y]:ans[x][y]=newdheapq.heappush(l, (newd,x,y))

5/9 3343. 統計平衡排列的數目

https://leetcode.cn/problems/count-number-of-balanced-permutations/solutions/3670620/tong-ji-ping-heng-pai-lie-de-shu-mu-by-l-ki3d/?envType=daily-question&envId=2025-05-09

def countBalancedPermutations(num):""":type num: str:rtype: int"""from collections import Counterimport mathMOD=10**9+7num=list(map(int,num))total=sum(num)if total%2:return 0target = total//2cnt = Counter(num)n=len(num)maxOdd = (n+1)//2psum=[0]*11for i in range(9,-1,-1):psum[i]=psum[i+1]+cnt[i]mem={}def dfs(pos,cur,oddcnt):if (pos,cur,oddcnt) in mem:return mem[(pos,cur,oddcnt)]if oddcnt<0 or psum[pos]<oddcnt or cur>target:mem[(pos,cur,oddcnt)]=0return 0if pos>9:mem[(pos,cur,oddcnt)]=int(cur==target and oddcnt==0)return int(cur==target and oddcnt==0)evencnt=psum[pos]-oddcntans=0for i in range(max(0,cnt[pos]-evencnt),min(cnt[pos],oddcnt)+1):ways=math.comb(oddcnt,i)*math.comb(evencnt,cnt[pos]-i)%MODans += ways*dfs(pos+1, cur+i*pos, oddcnt-i)mem[(pos,cur,oddcnt)]=ans%MODreturn ans%MODreturn dfs(0,0,maxOdd)

5/10 2918. 數組的最小相等和

正整數最小為1
統計數組當前和 以及0的個數
將所有0變為1 返回較大的值
如果較小數組中沒有0 則無法相等

def minSum(nums1, nums2):""":type nums1: List[int]:type nums2: List[int]:rtype: int"""s1,s2=sum(nums1),sum(nums2)z1,z2=nums1.count(0),nums2.count(0)s1+=z1s2+=z2if s1>s2:if z2==0:return -1else:return s1elif s1<s2:if z1==0:return -1else:return s2return s1

5/11 1550. 存在連續三個奇數的數組

依次判斷 i-1,i,i+1是否是奇數

def threeConsecutiveOdds(arr):""":type arr: List[int]:rtype: bool"""n=len(arr)for i in range(1,n-1):if arr[i-1]%2 and arr[i]%2 and arr[i+1]%2:return Truereturn False

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80247.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80247.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80247.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pytest自動化測試執行環境切換的兩種解決方案

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 一、痛點分析 在實際企業的項目中&#xff0c;自動化測試的代碼往往需要在不同的環境中進行切換&#xff0c;比如多套測試環境、預上線環境、UAT環境、線上環…

visual studio 2015 安裝閃退問題

參考鏈接&#xff1a; VS2012安裝時啟動界面一閃而過問題解決辦法 visual studio 2015 安裝閃退問題

RocketMQ Kafka區別

架構 ZooKeeper&#xff1a;管理 Broker 注冊、分區 Leader 選舉及消費者組狀態。Broker&#xff1a;存儲 Partition數據&#xff0c;每個 Partition 為獨立日志文件。Producer/Consumer&#xff1a;通過 ZooKeeper獲取路由信息&#xff0c;實現消息分發與消費。 NameServer&am…

MySQL進階篇2_SQL優化、鎖

文章目錄 1 SQL優化1.1插入數據優化1.2主鍵優化頁分裂頁合并主鍵設計原則 1.3order by設計優化1.4group by設計優化小理解 1.5limit設計優化順序IO和隨機IO小疑惑 1.6count設計優化1.7update優化關于隱式事務事務的DML操作 鎖全局鎖表級鎖表鎖元數據鎖意向鎖 行級鎖鎖的釋放條件…

如何測試 esp-webrtc-solution_solutions_doorbell_demo 例程?

軟件準備 esp-webrtc-solution/solutions/doorbell_demo 例程 此例程集成了 WebSocket 傳輸視頻流的應用 硬件準備 ESP32P4-Function-Ev-Board 環境搭建 推薦基于 esp-idf v5.4.1 版本的環境來編譯此例程 若編譯時出現依賴的組件報錯&#xff0c;可進行如下修改&#xff…

TransmittableThreadLocal:穿透線程邊界的上下文傳遞藝術

文章目錄 前言一、如何線程上下文傳遞1.1 ThreadLocal單線程1.2 InheritableThreadLocal的繼承困境1.3 TTL的時空折疊術 二、TTL核心設計解析2.1 時空快照機制2.2 裝飾器模式2.3 采用自動清理機制 三、設計思想啟示四、實踐啟示錄結語 前言 在并發編程領域&#xff0c;線程上下…

【數據結構】——棧

一、棧的概念和結構 棧其實就是一種特殊的順序表&#xff0c;其只允許在一端進出&#xff0c;就是棧的數據的插入和刪除只能在一端進行&#xff0c;進行數據的插入和刪除操作的一端稱為棧頂&#xff0c;另一端稱為棧底。棧中的元素遵循先進后出LIFO&#xff08;Last InFirst O…

大數據技術全景解析:Spark、Hadoop、Hive與SQL的協作與實戰

引言&#xff1a;當數據成為新時代的“石油” 在數字經濟時代&#xff0c;數據量以每年50%的速度爆發式增長。如何高效存儲、處理和分析PB級數據&#xff0c;成為企業競爭力的核心命題。本文將通過通俗類比場景化拆解&#xff0c;帶你深入理解四大關鍵技術&#xff1a;Hadoop、…

Android13 權限管理機制整理

一、概述 權限機制作為Android 系統安全的保證,很重要,這里整理一下 權限機制中framework 部分,selinux等其他的Android權限機制不在本次討論范圍內 二、個版本差異分類 Android13 Android12 Android11 及以下 拋開版本差異權限機制分為兩大類 一類是之前apk在Android6.0…

MySQL的Order by與Group by優化詳解!

目錄 前言核心思想&#xff1a;讓索引幫你“排好序”或“分好組”Part 1: ORDER BY 優化詳解1.1 什么是 Filesort&#xff1f;為什么它慢&#xff1f;1.2 如何避免 Filesort&#xff1f;—— 利用索引的有序性1.3 EXPLAIN 示例 (ORDER BY) Part 2: GROUP BY 優化詳解2.1 什么是…

awesome-digital-human本地部署及配置:打造高情緒價值互動指南

在數字化交互的浪潮中&#xff0c;awesome-digital-human-live2d項目為我們打開了本地數字人互動的大門。結合 dify 聊天 api&#xff0c;并借鑒 coze 夸夸機器人的設計思路&#xff0c;能為用戶帶來充滿情緒價值的交互體驗。本文將詳細介紹其本地部署步驟、dify 配置方法及情緒…

[ctfshow web入門] web68

信息收集 highlight_file被禁用了&#xff0c;使用cinclude("php://filter/convert.base64-encode/resourceindex.php");讀取index.php&#xff0c;使用cinclude("php://filter/convert.iconv.utf8.utf16/resourceindex.php");可能有些亂碼&#xff0c;不…

計算機網絡:深度解析基于鏈路狀態的內部網關協議IS-IS

IS-IS(Intermediate System to Intermediate System)路由協議詳解 IS-IS(Intermediate System to Intermediate System)是一種基于鏈路狀態的內部網關協議(IGP),最初由ISO為OSI(開放系統互連)模型設計,后經擴展支持IP路由。它廣泛應用于大型運營商網絡、數據中心及復…

SEGGER項目

SystemView 查看版本, 查看SEGGER官網&#xff0c;release時間是2019-12-18日, 而3.12.0的版本日期是2020-05-04 #define SEGGER_SYSVIEW_MAJOR 3 #define SEGGER_SYSVIEW_MINOR 10 #define SEGGER_SYSVIEW_REV 0SEGGER EMBEDDED Studio 根據S…

Linux——Mysql索引和事務

目錄 一&#xff0c;Mysql索引介紹 1&#xff0c;索引概述 1&#xff0c;索引的優點 2&#xff0c;索引的缺點 2&#xff0c;索引作用 3&#xff0c;索引分類 普通索引 唯一索引 主鍵索引 組合索引 全文索引 4&#xff0c;查看索引 5&#xff0c;刪除索引 6&…

【Web】LACTF 2025 wp

目錄 arclbroth lucky-flag whack-a-mole arclbroth 看到username為admin能拿到flag 但不能重復注冊存在的用戶 這題是secure-sqlite這個庫的問題&#xff0c;底層用的是C&#xff0c;沒處理好\0字符截斷的問題 &#xff08;在 Node.js 中&#xff0c;由于其字符串表示方式…

訪問者模式(Visitor Pattern)詳解

文章目錄 1. 訪問者模式概述1.1 定義1.2 基本思想 2. 訪問者模式的結構3. 訪問者模式的UML類圖4. 訪問者模式的工作原理5. Java實現示例5.1 基本實現示例5.2 訪問者模式處理復雜對象層次結構5.3 訪問者模式在文件系統中的應用 6. 訪問者模式的優缺點6.1 優點6.2 缺點 7. 訪問者…

matlab介紹while函數

MATLAB 中的 while 語句介紹 在 MATLAB 中&#xff0c;while 語句是一種循環結構&#xff0c;用于在滿足特定條件時反復執行一段代碼塊。與 for 循環不同&#xff0c;while 循環的執行次數是動態的&#xff0c;取決于循環條件是否為真。 語法 while condition% 循環體代碼 e…

數字信號處理|| 快速傅里葉變換(FFT)

一、實驗目的 &#xff08;1&#xff09;加深對快速傅里葉變換&#xff08;FFT&#xff09;基本理論的理解。 &#xff08;2&#xff09;了解使用快速傅里葉變換&#xff08;FFT&#xff09;計算有限長序列和無限長序列信號頻譜的方法。 &#xff08;3&#xff09;掌握用MATLA…

.Net Mqtt協議-MQTTNet(一)簡介

一、MQTTNet 簡介 MQTTnet 是一個高性能的MQTT類庫&#xff0c;支持.NET Core和.NET Framework。 二、MQTTNet 原理 MQTTnet 是一個用于.NET的高性能MQTT類庫&#xff0c;實現了MQTT協議的各個層級&#xff0c;包括連接、會話、發布/訂閱、QoS&#xff08;服務質量&#xff0…