LeetCode 每日一題 2025/4/28-2025/5/4

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


目錄

      • 4/28 2302. 統計得分小于 K 的子數組數目
      • 4/29 2962. 統計最大元素出現至少 K 次的子數組
      • 4/30 1295. 統計位數為偶數的數字
      • 5/1 2071. 你可以安排的最多任務數目
      • 5/2 838. 推多米諾
      • 5/3 1007. 行相等的最少多米諾旋轉
      • 5/4 1128. 等價多米諾骨牌對的數量


4/28 2302. 統計得分小于 K 的子數組數目

滑動窗口 固定右側端點r
找到左側端點l 使得[l,r]第一次滿足條件
那么以l右側的位置為左端點必定滿足

def countSubarrays(nums, k):""":type nums: List[int]:type k: int:rtype: int"""n=len(nums)ans=0total=0l=0for r in range(n):total+=nums[r]while l<=r and total*(r-l+1)>=k:total-=nums[l]l+=1ans+=r-l+1return ans

4/29 2962. 統計最大元素出現至少 K 次的子數組

遍歷記錄最大元素出現的位置 ind
對于最大元素位置i1 在(i0,i1]間的所有位置都需要到ik為止才能滿足
此時有(i1-i0)*(n-ik)個子數組

def countSubarrays(nums, k):""":type nums: List[int]:type k: int:rtype: int"""n=len(nums)maxv=max(nums)ind=[-1]for i in range(n):if nums[i]==maxv:ind.append(i)l,r=1,kans=0while r<len(ind):ans+=(ind[l]-ind[l-1])*(n-ind[r])l+=1r+=1return ans

4/30 1295. 統計位數為偶數的數字

依次判斷

def findNumbers(nums):""":type nums: List[int]:rtype: int"""def check(num):b = 0while num>0:num=num//10b+=1return b%2==0ans = 0for num in nums:if check(num):ans+=1return ans

5/1 2071. 你可以安排的最多任務數目

假設完成k個任務 選擇k個值最小的任務 和k個力量最大的工人
二分來找到最大的k
check(mid)用來判斷mid個是否滿足

def maxTaskAssign(tasks, workers, pills, strength):""":type tasks: List[int]:type workers: List[int]:type pills: int:type strength: int:rtype: int"""from sortedcontainers import SortedListn=len(tasks)m=len(workers)tasks.sort()workers.sort()def check(mid):p=pillswk=SortedList(workers[m-mid:])for i in range(mid-1,-1,-1):if wk[-1]>=tasks[i]:wk.pop()else:if p==0:return Falserep=wk.bisect_left(tasks[i]-strength)if rep==len(wk):return Falsep-=1wk.pop(rep)return Truel,r,ans=1,min(m,n),0while l<=r:mid=(l+r)//2if check(mid):ans=midl=mid+1else:r=mid-1return ans

5/2 838. 推多米諾

廣搜BFS
使用l,r兩個集合記錄當前向左向右傾倒的位置
每一個向左的位置-1 如果位置上的骨牌狀態為.則暫時標記可以傾倒
向右的一樣
判斷向左向右傾倒的位置是否有重復 如果有重復
這個位置將不會傾倒 去除這些位置
將可以傾倒的位置標記后 下一輪重新操作

def pushDominoes(dominoes):""":type dominoes: str:rtype: str"""dmn = list(dominoes)l,r = set(),set()for loc,c in enumerate(dmn):if c=="R":r.add(loc)elif c=="L":l.add(loc)n = len(dominoes)while l or r:tmpl,tmpr = set(),set()for loc in l:tmp = loc-1if tmp>=0 and dmn[tmp]==".":tmpl.add(tmp)for loc in r:tmp = loc+1if tmp<n and dmn[tmp]==".":tmpr.add(tmp)same = tmpl&tmprtmpl -= sametmpr -= same for loc in tmpl:dmn[loc]="L"for loc in tmpr:dmn[loc]="R"l = tmplr = tmprreturn "".join(dmn)

5/3 1007. 行相等的最少多米諾旋轉

遍歷記錄數值在top出現的次數t[x] 在bottoms出現b[x]次
并統計每個位置數值出現次數nums[x]如果某個位置top,bottoms相同 則只在nums中統計一次
如果需要滿足條件則必定存在某個數值x nums[x]=len(tops)
如果交換到top需要n-t[x]次 到下層需要n-b[x] 取小值

def minDominoRotations(tops, bottoms):""":type tops: List[int]:type bottoms: List[int]:rtype: int"""n=len(tops)nums=[0]*7t,b=[0]*7,[0]*7for i in range(n):t[tops[i]]+=1b[bottoms[i]]+=1nums[tops[i]]+=1if tops[i]!=bottoms[i]:nums[bottoms[i]]+=1for i in range(1,7):if nums[i]==n:return min(n-t[i],n-b[i])return -1

5/4 1128. 等價多米諾骨牌對的數量

依次遍歷

def numEquivDominoPairs(dominoes):""":type dominoes: List[List[int]]:rtype: int"""m = {}ret = 0for a,b in dominoes:if a>b:a,b=b,atmp = m.get((a,b),0)m[(a,b)] = tmp+1for v in m.values():if v>=2:ret += (v-1)*v/2return ret

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

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

相關文章

三、Hadoop1.X及其組件的深度剖析

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月7日 專欄&#xff1a;Hadoop教程 一、Hadoop 1.X 概述 &#xff08;一&#xff09;概念 Hadoop 是 Apache 開發的分布式系統基礎架構&#xff0c;用 Java 編寫&#xff0c;為集群處理大型數據集提供編程模型&#xff0c;…

Java中字符轉數字的原理解析 - 為什么char x - ‘0‘能得到對應數字

前言 在Java編程中&#xff0c;我們經常需要將字符形式的數字轉換為實際的數值。有很多方法可以實現這一轉換&#xff0c;比如使用Integer.parseInt()或Character.getNumericValue()等方法。但有一種簡便且高效的方式是直接使用char - 0運算&#xff0c;本文將詳細解析這種方法…

第5講、Transformer 編碼器(Encoder)處理過程詳解

&#x1f50d; Transformer 編碼器&#xff08;Encoder&#xff09;處理過程詳解 Transformer Encoder 是一個由 N 層&#xff08;一般為 6 層&#xff09;堆疊而成的模塊結構。每一層的本質是兩個核心子模塊&#xff1a; 多頭自注意力&#xff08;Multi-Head Self-Attention…

SWiRL:數據合成、多步推理與工具使用

SWiRL&#xff1a;數據合成、多步推理與工具使用 在大語言模型&#xff08;LLMs&#xff09;蓬勃發展的今天&#xff0c;其在復雜推理和工具使用任務上卻常遇瓶頸。本文提出的Step-Wise Reinforcement Learning&#xff08;SWiRL&#xff09;技術&#xff0c;為解決這些難題帶…

【Windows 常用工具系列 22 -- vscode markdown preview 字體大小設置】

文章目錄 解決辦法 解決辦法 打開設置&#xff08;快捷鍵 Ctrl , 。或者左下角圖標齒輪 ?&#xff09;搜索設置選項 Markdown ? Preview: Font Size控制 Markdown 預覽中使用的字號(以像素為單位)。 推薦閱讀 https://blog.csdn.net/yanglsbb/article/details/127306685

【風控】模型監控和異常處理

在風控模型的全生命周期中&#xff0c;模型監控與異常處理是保障模型持續、穩定、可靠運行的關鍵環節。本指南旨在提供系統化、可落地的監控指標、預警策略及異常處置流程&#xff0c;幫助團隊快速定位、響應并修復線上模型問題&#xff0c;最大限度降低風險。 1.模型監控與預…

第4章 遞推法

4.1 遞推法概述 設計思想&#xff1a; 遞推法&#xff08;Recurrence Method&#xff09;通過已知的初始條件和遞推關系&#xff0c;逐步推導出問題的最終結果&#xff0c;常用于序列計算和分階段問題求解。 示例&#xff1a;猴子和桃子問題 題目描述&#xff1a; 猴子每天吃…

可視化魔法指南

?? ECharts數據可視化魔法指南 ?? ECharts:數據的藝術畫筆 #mermaid-svg-ARwFHUrXBJ03Gpo9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ARwFHUrXBJ03Gpo9 .error-icon{fill:#552222;}#mermaid-svg-ARwFHUr…

SpringBoot學生宿舍管理系統開發實現

概述 一款基于SpringBoot框架開發的學生宿舍管理系統完整項目&#xff0c;該系統包含管理員、學生、宿管員和維修員四大角色模塊&#xff0c;功能完善&#xff0c;非常適合作為設計或二次開發的基礎項目。 主要內容 5.1 管理員功能模塊 管理員登錄界面采用驗證碼驗證機制&a…

同步 / 異步、阻塞 / 非阻塞

前言 同步異步&#xff0c;在計算機科學中是一個非常重要的概念。作為一位軟件開發工程師&#xff0c;我們每天都在和同步和異步打交道。 同步 同步-阻塞&#xff0c;顧名思義&#xff0c;就是同步和阻塞。調用方法后&#xff0c;必須等到結果返回&#xff0c;才能繼續執行別…

AOP封裝進行批量的數據查詢并填充

在我們日常的項目開發中&#xff0c;我們經常會遇到這樣的問題。我們有一張用戶表&#xff0c;用戶表中有用戶ID和用戶名稱。我們其他表中會記錄我們當前操作人的ID&#xff0c;一般&#xff0c;我們會記錄一個創建人ID和修改人ID。那么&#xff0c;這個時候問題來了&#xff0…

Java學習手冊:數據庫事務相關知識

一、事務的概念與特性 概念 &#xff1a;事務是數據庫中一系列操作的集合&#xff0c;這些操作要么全部成功&#xff0c;要么全部失敗&#xff0c;是一個不可分割的工作單位。例如&#xff0c;在銀行轉賬系統中&#xff0c;從一個賬戶扣款和向另一個賬戶存款這兩個操作必須作為…

java復雜度,包裝類,泛型解析

如何衡量代碼的好壞&#xff1f; 評價代碼的好壞我們使用算法效率來判斷&#xff0c;而算法效率分兩種&#xff1a; 算法效率&#xff1a; 第一種是時間效率&#xff0c;第二種是空間效率&#xff0c;時間效率被稱為時間復雜度&#xff0c;?空間效率被稱作空間復雜度。 時間…

基于 SpringBoot + Vue 的校園管理系統設計與實現

一、項目簡介 本系統以校園組織管理為主線&#xff0c;結合用戶權限分離機制與模塊化設計&#xff0c;實現對“單位類別、單位、通知推送、投票信息、用戶回復”等內容的全流程管理&#xff0c;廣泛適用于教育局、高校及下屬組織的信息管理工作。 &#x1f3af; 項目亮點&…

iOS藍牙技術實現及優化

以下是針對2025年iOS藍牙技術實現的核心技術要點的深度解析&#xff0c;結合當前iOS 18&#xff08;推測版本&#xff09;的最新特性與開發實踐&#xff0c;分模塊結構化呈現&#xff1a; 一、硬件與協議層適配 BLE 5.3 支持 iOS 18默認支持藍牙5.3協議&#xff0c;需注意&…

Qt 中實現觀察者模式(Observer Pattern)

在 Qt 中實現**觀察者模式(Observer Pattern)通常利用其內置的信號與槽(Signals & Slots)**機制,這是最符合 Qt 設計哲學的方式。以下是詳細實現方法和關鍵點: —### 1. 觀察者模式的核心思想- Subject(被觀察者):維護一個觀察者列表,在狀態變化時通知觀察者。- …

寫程序,統計兩會政府工作報告熱詞頻率,并生成詞云

import jieba from collections import Counter from wordcloud import WordCloud import matplotlib.pyplot as pltdef generate_wordcloud():try:# 讀取文本文件with open(E:\\桌面\\s.txt, r, encodingutf-8) as file:text file.read()# 中文分詞words jieba.lcut(text)# …

【Science Advances】普林斯頓大學利用非相干光打造可重構納米光子神經網絡

(導讀 ) 人工智能對計算性能需求劇增&#xff0c;電子微處理器發展受功耗限制。光學計算有望解決這些問題&#xff0c;光學神經網絡&#xff08;ONNs&#xff09;成為研究熱點&#xff0c;但現有 ONNs 因設計缺陷&#xff0c;在圖像分類任務中精度遠低于現代電子神經網絡&#…

gin + es 實踐 01

項目結構說明 目錄結構概覽 Go-ES 項目采用領域驅動設計&#xff08;DDD&#xff09;架構&#xff0c;目錄結構清晰&#xff0c;各層次職責分明。以下是項目的主要目錄結構&#xff1a; go-es/ ├── cmd/ # 應用程序入口 │ └── api/ …

如何構建直播美顏SDK?從美顏API調用邏輯到GPU優化實戰

隨著短視頻和直播行業的爆發&#xff0c;美顏SDK已成為各大直播平臺的“標配”。從基礎的磨皮、美白&#xff0c;到如今的AI濾鏡、虛擬形象&#xff0c;這些功能的背后都離不開高效的美顏SDK支持。那么&#xff0c;如何構建一款性能優越、體驗流暢的直播美顏SDK呢&#xff1f;本…