LeetCode 每日一題 2025/8/4-2025/8/10

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


目錄

      • 8/4 904. 水果成籃
      • 8/5 3477. 水果成籃 II
      • 8/6 3479. 水果成籃 III
      • 8/7 3363. 最多可收集的水果數目
      • 8/8 808. 分湯
      • 8/9 231. 2 的冪
      • 8/10 869. 重新排序得到 2 的冪


8/4 904. 水果成籃

滑動窗口l,r 記錄當前水果
如果超過兩種則滑動l 減少至兩種

def totalFruit(fruits):""":type fruits: List[int]:rtype: int"""m = {}ans = 0l = 0for r,v in enumerate(fruits):m[v] = m.get(v,0)+1if len(m)>2:m[fruits[l]]-=1if m[fruits[l]] == 0:m.pop(fruits[l])l+=1ans = max(ans,r-l+1)return ans

8/5 3477. 水果成籃 II

遍歷每一個水果

def numOfUnplacedFruits(fruits, baskets):""":type fruits: List[int]:type baskets: List[int]:rtype: int"""ans=0n=len(baskets)for f in fruits:cur=1for i in range(n):if f<=baskets[i]:baskets[i]=0cur=0breakans+=curreturn ans

8/6 3479. 水果成籃 III

線段樹二分
對于水果i 在線段樹上二分找到第一個容量大于等于它的籃子

def numOfUnplacedFruits(fruits, baskets):""":type fruits: List[int]:type baskets: List[int]:rtype: int"""class Tree:def __init__(self,a):n=len(a)self.max=[0]*(2<<(n-1).bit_length())self.build(a,1,0,n-1)def maintain(self,o):self.max[o]=max(self.max[o*2],self.max[o*2+1])def build(self,a,o,l,r):if l==r:self.max[o]=a[l]return mid=(l+r)//2self.build(a, o*2, l, mid)self.build(a, o*2+1, mid+1, r)self.maintain(o)def find(self,o,l,r,x):if self.max[o]<x:return -1if l==r:self.max[o]=-1return lmid=(l+r)//2i = self.find(o*2,l,mid,x)if i<0:i=self.find(o*2+1, mid+1, r, x)self.maintain(o)return itr=Tree(baskets)n=len(baskets)ans=0for x in fruits:if tr.find(1, 0, n-1, x)<0:ans+=1return ans

8/7 3363. 最多可收集的水果數目

左上角的小朋友只能走對角線到達
為了使得收集水果最多 不走重復路線
右上角小朋友不穿過對角線 只在右上走
同理 左下小朋友只在左下走
dfs 只需要一個小朋友走好了 另一個反轉后一樣

def maxCollectedFruits(fruits):""":type fruits: List[List[int]]:rtype: int"""n=len(fruits)mem={}ans = sum(fruits[i][i] for i in range(n))def dfs(i,j):if (i,j) in mem:return mem[(i,j)]if not(n-1-i<=j<n):return float("-inf")if i==0:return fruits[i][j]ans = max(dfs(i-1,j-1),dfs(i-1,j),dfs(i-1,j+1))+fruits[i][j]mem[(i,j)]=ansreturn ansans+=dfs(n-2,n-1)mem={}fruits=list(zip(*fruits))ans+=dfs(n-2,n-1)return ans

8/8 808. 分湯

可以將25ml看作1份 四種情況分別為
A 4 B 0
A 3 B 1
A 2 B 2
A 1 B 3
開始時 A,B擁有的份數一樣
當n過大時 A被取完的概率接近于1 誤差小于10^-5
假設dp[i][j] 為A剩余i份 B剩余j份時 需要求的概率
dp[i][j] = (dp[i-4][j]+dp[i-3][j-1]+dp[i-2][j-2]+dp[i-1][j-3])/4
當j=0,i>0時 dp[i][j] = 0
當i=0,j>0時 dp[i][j] = 1
當i=0,j=0時 dp[i][j] = 0.5

def soupServings(n):""":type n: int:rtype: float"""n = (n+24)//25if n>=179:return 1dp = [[0]*(n+1) for _ in range(n+1)]dp[0] = [0.5]+[1.0]*nfor i in range(1,n+1):for j in range(1,n+1):dp[i][j] = (dp[max(0, i - 4)][j] + dp[max(0, i - 3)][max(0, j - 1)] +dp[max(0, i - 2)][max(0, j - 2)] + dp[max(0, i - 1)][max(0, j - 3)])/4return dp[n][n]

8/9 231. 2 的冪

排除負數
轉換為二進制 如果是2的冪 必定只有第一位為1 其它為0
2.
去除最低位1的方法 n與n-1相與
如果只有1個1 那么n&(n-1)==0
不為零說明不止一個1

def isPowerOfTwo(n):""":type n: int:rtype: bool"""if n<=0:return Falses = bin(n)[2:]return True if s.count('1')==1 else Falsedef isPowerOfTwo2(n):""":type n: int:rtype: bool"""if n<=0:return Falsereturn n&(n-1)==0

8/10 869. 重新排序得到 2 的冪

n<109 所以2的冪最多229
找到所有2的冪的數字組合
匹配

def reorderedPowerOf2(n):""":type n: int:rtype: bool"""base = 1s = set()l = list(str(base))l.sort()s.add("".join(l))for i in range(29):base *=2l = list(str(base))l.sort()s.add("".join(l))check = list(str(n))check.sort()return "".join(check) in s

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

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

相關文章

Python爬蟲實戰:研究Ruia框架,構建博客園文章采集系統

1. 引言 1.1 研究背景與意義 在數字化時代,數據已成為驅動科技創新與產業升級的核心生產要素。互聯網作為全球最大的信息載體,蘊含著億級結構化、半結構化與非結構化數據,這些數據在商業決策、學術研究、公共服務等領域具有不可替代的價值。網絡爬蟲技術作為自動獲取網絡公…

Office安裝使用?借助Ohook開源工具?【圖文詳解】微軟Office產品

一、問題背景 很多用戶在使用 Office 軟件一段時間后&#xff0c;會遇到以下問題。 二、解決方案 Ohook 是 Office 獨有的可用方式&#xff0c;源自 GitHub 上的開源項目&#xff0c;代碼開源&#xff08;開源地址&#xff1a;https://github.com/asdcorp/ohook&#xff09;。 …

LeetCode簡單題 - 學習

力扣題庫 - 簡單題 - 僅記錄學習 來源地址&#xff1a; 力扣 (LeetCode) 全球極客摯愛的技術成長平臺 1. 兩數之和 給定一個整數數組 nums 和一個整數目標值 target&#xff0c;請你在該數組中找出 和為目標值 target 的那 兩個 整數&#xff0c;并返回它們的數組下標。 你…

Android Camera 打開和拍照APK源碼

完整下載路徑: 【免費】AndroidcameraAPK完整源碼(包括打開攝像頭和拍照保存功能)Android10驗證可完整運行資源-CSDN下載 效果: 源碼: package com.example.mycamera;import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appco…

【系統分析師】軟件需求工程——第11章學習筆記(上)

軟件需求工程是包括創建和維護軟件需求文檔所必需的一切活動的過程。可分為兩大工作&#xff1a;需求開發需求獲取需求分析需求定義&#xff08;編寫需求規格說明書&#xff09;需求驗證需求管理定義需求基線處理需求變更需求跟蹤在需求開發階段需要確定軟件所期望的用戶類型&a…

機器學習第七課之支持向量機SVM

目錄 簡介&#xff1a; 一、什么是支持向量機 二、如何選取最佳的超平面 1.超平面方程 (優化目標) 2.如何尋找最優的超平面 3.舉例分析 4.軟間隔?編輯 三、核函數 1舉例 2常用核函數 3.多項式核函數 4.高斯核函數: 四、svm的優缺點 五、支持向量機的API 六、案例…

P3232 [HNOI2013] 游走,solution

原題&#xff1a; link&#xff0c;點擊這里喵。 題意&#xff1a; 給定一個 nnn 個點 mmm 條邊的無向連通圖&#xff0c;圖無重邊和自環&#xff0c;頂點從 111 編號到 nnn&#xff0c;邊從 111 編號到 mmm。 小 Z 在該圖上進行隨機游走&#xff0c;初始時小 Z 在 111 號頂…

Docker容器部署discuz論壇與線上商城

準備 關閉防火墻&#xff0c;上下文[rootdocker ~]# systemctl disable --now firewalld[rootdocker ~]# setenforce 0下載應用yum remove runc -y ### rocky8才需要yum install -y yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/cento…

Linux入門指南:26個基礎命令全解析

目錄 一.基礎概念與入門 1.Linux操作系統簡介 2.終端與shell的基本概念 3.命令行界面的優勢 二.基礎指令 1.whoami ?2.useradd/userdel/passwd ?3.pwd ?4.ls ?5.cd 6.touch 7.mkdir 8.tree 9.rmdir/rm 10.man 11.cp 12.mv 13.cat 14.le…

【后端】Java 8 特性 `User::getId` 語法(方法引用)介紹

文章目錄核心概念解析&#xff1a;方法引用的四種類型&#xff1a;關鍵特性&#xff1a;使用場景推薦&#xff1a;何時避免使用&#xff1a;性能說明&#xff1a;在 Java 中&#xff0c; User::getId 是一種稱為 方法引用&#xff08;Method Reference&#xff09; 的語法糖&a…

基于BP與CNN的圖像分類模型構建、超參數優化及性能對比研究?

一、實驗目的實驗目標構建基于神經網絡模型的數據分析與模式識別框架&#xff0c;探明神經網絡在大數據分析中的意義。實驗任務構建基于深度 BP 神經網絡與卷積神經網絡的數據分析與模式識別框架&#xff0c;將數據集 MNIST 與 CIFAR-10 分別在兩種模型中訓練&#xff0c;并比較…

HarmonyOS應用開發-低代碼開發登錄頁面(超詳細)

本篇文章我來手把手教大家做一個HarmonyOS 應用的登錄頁面&#xff0c;逐步講解&#xff0c;非常細致&#xff0c;百分百能學會&#xff0c;并提供全部源碼。頁面使用 DevEco Studio 的低代碼開發。 通過本文的實踐經驗&#xff0c;我想告訴大家&#xff0c; HarmonyOS 應用開發…

AJAX與axios框架

文章目錄前言案例跨域訪問總結?前言 提示&#xff1a;這里可以添加本文要記錄的大概內容&#xff1a; 通過 ajax 進行前后端交互 案例 此項目用到了javaweb知識 首先創建JavaWeb項目編寫代碼&#xff1a; package ajax;import java.io.IOException; import java.util.Arr…

智能創造的幕后推手:AIGC浪潮下看AI訓練師如何塑造智能未來

文章目錄一、AIGC時代的算法與模型訓練概覽二、算法與模型訓練的關鍵環節三、AI訓練師的角色與職責四、AI訓練師的專業技能與素養五、AIGC算法與模型訓練的未來展望《AI訓練師手冊&#xff1a;算法與模型訓練從入門到精通》亮點內容簡介作者簡介谷建陽目錄《醫學統計學從入門到…

Python設計模式 - 裝飾模式

定義 裝飾模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;用于在不修改原有類的情況下動態地擴展對象的功能。 結構抽象組件&#xff08;Component&#xff09;&#xff1a;定義對象的公共接口&#xff0c;使得客戶端能以一致的方式處理未被裝…

MySQL(188)如何使用MySQL的慢查詢工具?

使用MySQL的慢查詢工具可以幫助開發者識別和優化性能不佳的SQL查詢。以下是詳細深入的步驟和代碼示例&#xff0c;幫助你使用MySQL的慢查詢工具來進行查詢分析和優化。 一、啟用慢查詢日志 首先&#xff0c;你需要確保MySQL的慢查詢日志功能是啟用的。慢查詢日志記錄了所有執行…

如何培養自己工程化的能力(python項目)

培養 Python 項目的工程化能力需要系統性訓練&#xff0c;以下從基礎到高階的實踐路徑&#xff0c;結合具體案例和工具鏈&#xff0c;幫助你逐步進階&#xff1a;一、夯實工程化基礎能力?1. 規范代碼與項目結構??項目模板化?使用 cookiecutter生成標準項目結構&#xff0c;…

AI編程插件對比分析:CodeRider、GitHub Copilot及其他

AI編程插件對比分析:CodeRider、GitHub Copilot及其他 隨著人工智能技術的快速發展,AI編程插件已成為提升開發者生產力的重要工具。CodeRider和GitHub Copilot作為市場上的領先者,分別以其獨特的特性和生態系統吸引了大量開發者。本文將從功能特性、性能表現、集成性、用戶…

uniapp/uniappx實現圖片或視頻文件選擇時同步告知權限申請目的解決華為等應用市場上架審核問題

在UNIAPP支持vue和nvue,在UNIAPPX支持uvue&#xff0c;安卓支持在選擇圖片或視頻文件權限申請的時候自動同步告知權限申請目的。輕松解決在華為應用市場審核&#xff0c;要求告知權限申請目的或說明的問題。 UNIAPP相冊圖片視頻選擇器(安卓可以自定義界面樣式)功能介紹&#x…

jupyter notebook如何打開其他盤目錄

問題描述Jupyter Notebook 相信是我們學習 Python 避不開的一個工具。當我們使用 pip install notebook 安裝 Notebook 之后&#xff0c;使用命令 jupyter notebook 啟動服務&#xff0c;啟動之后默認會在瀏覽器打開界面。我們會發現&#xff0c;這個界面默認在 C 盤下&#xf…