LeetCode 每日一題 2025/3/31-2025/4/6

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


目錄

      • 3/31 2278. 字母在字符串中的百分比
      • 4/1 2140. 解決智力問題
      • 4/2 2873. 有序三元組中的最大值 I
      • 4/3 2874. 有序三元組中的最大值 II
      • 4/4 1123. 最深葉節點的最近公共祖先
      • 4/5 1863. 找出所有子集的異或總和再求和
      • 4/6 368. 最大整除子集


3/31 2278. 字母在字符串中的百分比

遍歷 求出字母個數

def percentageLetter(s, letter):""":type s: str:type letter: str:rtype: int"""num = 0n=len(s)for c in s:if c==letter:num+=1return num*100//n

4/1 2140. 解決智力問題

一眼動歸
因為對于某個位置i是否可以解決取決于他前面的問題 所以從后往前遍歷更加方便
定義dp[i]為解決i~n之間的問題可以得到的最高分數
dp[i]=points[i]+dp[i+brainpower[i]+1]

def mostPoints(questions):""":type questions: List[List[int]]:rtype: int"""n=len(questions)dp=[0]*(n+1)for i in range(n-1,-1,-1):dp[i]=max(dp[i+1],questions[i][0]+dp[min(n,i+questions[i][1]+1)])return dp[0]

4/2 2873. 有序三元組中的最大值 I

1.遍歷 三重循環
2.為了使值最大 對于每個j 要找到它左邊的最大值nums[i] 和右邊的最大值nums[k]
lmax[j],rmax[j]分別記錄j左右的最大值

def maximumTripletValue(nums):""":type nums: List[int]:rtype: int"""cur = 0n=len(nums)for i in range(n-2):for j in range(i+1,n-1):for k in range(j+1,n):cur=max(cur,(nums[i]-nums[j])*nums[k])return curdef maximumTripletValue2(nums):""":type nums: List[int]:rtype: int"""n=len(nums)lmax=[0]*nrmax=[0]*nfor i in range(1,n):lmax[i]=max(lmax[i-1],nums[i-1])rmax[n-1-i]=max(rmax[n-i],nums[n-i])cur=0for j in range(1,n-1):cur=max(cur,(lmax[j]-nums[j])*rmax[j])return cur

4/3 2874. 有序三元組中的最大值 II

數組長度很大不能循環遍歷
為了使值最大 對于每個j 要找到它左邊的最大值nums[i] 和右邊的最大值nums[k]
lmax[j],rmax[j]分別記錄j左右的最大值

def maximumTripletValue(nums):""":type nums: List[int]:rtype: int"""n=len(nums)lmax=[0]*nrmax=[0]*nfor i in range(1,n):lmax[i]=max(lmax[i-1],nums[i-1])rmax[n-1-i]=max(rmax[n-i],nums[n-i])cur=0for j in range(1,n-1):cur=max(cur,(lmax[j]-nums[j])*rmax[j])return cur

4/4 1123. 最深葉節點的最近公共祖先

dfs

class TreeNode(object):def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef lcaDeepestLeaves(root):""":type root: Optional[TreeNode]:rtype: Optional[TreeNode]"""global ans,maxdans=Nonemaxd = -1def dfs(node,dep):global ans,maxdif not node:maxd = max(maxd,dep)return depleft = dfs(node.left,dep+1)right = dfs(node.right,dep+1)if left==right==maxd:ans = nodereturn max(left,right)dfs(root,0)return ans

4/5 1863. 找出所有子集的異或總和再求和

遍歷

def subsetXORSum(nums):""":type nums: List[int]:rtype: int"""ans=0n=len(nums)for i in range(1<<n):tmp=0for j in range(n):if i&(1<<j):tmp^=nums[j]ans+=tmpreturn ans

4/6 368. 最大整除子集

  1. 遍歷
    ans內每個num結尾都一個備選答案
    每一個數 遍歷當前備選答案 保留長度最大的一個為當前Num的備選答案
    2.dp
    dp[i] nums[i]最大子集個數
def largestDivisibleSubset(nums):""":type nums: List[int]:rtype: List[int]"""n = len(nums)nums.sort()ans = [[nums[0]]]for i in range(1,n):c = nums[i]ret = []for j in range(len(ans)-1,-1,-1):tmp = ans[j][:]if c%tmp[-1]==0:tmp.append(c)if len(tmp)>len(ret):ret = tmp[:]if not ret:ret = [c]ans.append(ret)ans.sort(key=lambda x: len(x))return ans[-1]def largestDivisibleSubset2(nums):""":type nums: List[int]:rtype: List[int]"""n=len(nums)nums.sort()dp = [1]*nmsize,mval=1,1for i in range(n):for j in range(i):if nums[i]%nums[j]==0 and dp[j]+1>dp[i]:dp[i]=dp[j]+1if dp[i]>msize:msize=dp[i]mval = nums[i]if msize==1:return nums[:1]ret = []for i in range(n-1,-1,-1):if msize==0:return retif dp[i]==msize and mval%nums[i]==0:ret.append(nums[i])mval = nums[i]msize-=1return ret

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

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

相關文章

Docker Compose 常用命令 運行 docker-compose.yaml

Docker Compose 中有兩個重要的概念 服務 (service)&#xff1a;一個應用的容器&#xff0c;實際上可以包括若干運行相同鏡像的容器實例。 項目 (project)&#xff1a;由一組關聯的應用容器組成的一個完整業務單元&#xff0c;在 docker-compose.yml 文件中定義。 為了更方便…

深度學習中的 Batch 機制:從理論到實踐的全方位解析

一、Batch 的起源與核心概念 1.1 批量的中文譯名解析 Batch 在深度學習領域標準翻譯為"批量"或"批次"&#xff0c;指代一次性輸入神經網絡進行處理的樣本集合。這一概念源自統計學中的批量處理思想&#xff0c;在計算機視覺先驅者Yann LeCun于1989年提出…

Unity Internal-ScreenSpaceShadows 分析

一、代碼結構 // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)Shader "Hidden/Internal-ScreenSpaceShadows" {Properties {_ShadowMapTexture ("", any) "" {} // 陰影貼圖紋理&…

Token+JWT+Redis 實現鑒權機制

TokenJWTRedis 實現鑒權機制 使用 Token、JWT 和 Redis 來實現鑒權機制是一種常見的做法&#xff0c;尤其適用于分布式應用或微服務架構。下面是一個大致的實現思路&#xff1a; 1. Token 和 JWT 概述 Token&#xff1a;通常是一個唯一的字符串&#xff0c;可以用來標識用戶…

RPC與其他通信技術的區別,以及RPC的底層原理

1、什么是 RPC&#xff1f; 遠程過程調用&#xff08;RPC&#xff09; 是一種協議&#xff0c;它允許程序在不同計算機之間進行通信&#xff0c;讓開發者可以像調用本地函數一樣發起遠程請求。 通過 RPC&#xff0c;開發者無需關注底層網絡細節&#xff0c;能夠更專注于業務邏…

簡潔的 PlantUML 入門教程

評論中太多朋友在問&#xff0c;我的文章中圖例如何完成的。 我一直用plantUML,也推薦大家用&#xff0c;下面給出一個簡潔的PlantUML教程。 &#x1f331; 什么是 PlantUML&#xff1f; PlantUML 是一個用純文本語言畫圖的工具&#xff0c;支持流程圖、時序圖、用例圖、類圖、…

互聯網三高-高性能之JVM調優

1 運行時數據區 JVM運行時數據區是Java虛擬機管理的內存核心模塊&#xff0c;主要分為線程共享和線程私有兩部分。 &#xff08;1&#xff09;線程私有 ① 程序計數器&#xff1a;存儲當前線程執行字節碼指令的地址&#xff0c;用于分支、循環、異常處理等流程控制? ② 虛擬機…

淺談StarRocks 常見問題解析

StarRocks數據庫作為高性能分布式分析數據庫&#xff0c;其常見問題及解決方案涵蓋環境部署、數據操作、系統穩定性、安全管控及生態集成五大核心領域&#xff0c;需確保Linux系統環境、依賴庫及環境變量配置嚴格符合官方要求以避免節點啟動失敗&#xff0c;數據導入需遵循格式…

P1332 血色先鋒隊(BFS)

題目背景 巫妖王的天災軍團終于卷土重來&#xff0c;血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團&#xff0c;以及一切沾有亡靈氣息的生物。孤立于聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍&#xff0c;現在他們將主力只好聚集了起來&#xff0c;以抵…

大文件上傳之斷點續傳實現方案與原理詳解

一、實現原理 文件分塊&#xff1a;將大文件切割為固定大小的塊&#xff08;如5MB&#xff09; 進度記錄&#xff1a;持久化存儲已上傳分塊信息 續傳能力&#xff1a;上傳中斷后根據記錄繼續上傳未完成塊 塊校驗機制&#xff1a;通過哈希值驗證塊完整性 合并策略&#xff1a;所…

【動手學深度學習】卷積神經網絡(CNN)入門

【動手學深度學習】卷積神經網絡&#xff08;CNN&#xff09;入門 1&#xff0c;卷積神經網絡簡介2&#xff0c;卷積層2.1&#xff0c;互相關運算原理2.2&#xff0c;互相關運算實現2.3&#xff0c;實現卷積層 3&#xff0c;卷積層的簡單應用&#xff1a;邊緣檢測3.1&#xff0…

Opencv計算機視覺編程攻略-第十一節 三維重建

此處重點討論在特定條件下&#xff0c;重建場景的三維結構和相機的三維姿態的一些應用實現。下面是完整投影公式最通用的表示方式。 在上述公式中&#xff0c;可以了解到&#xff0c;真實物體轉為平面之后&#xff0c;s系數丟失了&#xff0c;因而無法會的三維坐標&#xff0c;…

大廠不再招測試?軟件測試左移開發合理嗎?

&#x1f449;目錄 1 軟件測試發展史 2 測試左移&#xff08;Testing shift left&#xff09; 3 測試右移&#xff08;Testing shift right&#xff09; 4 自動化測試 VS 測試自動化 5 來自 EX 測試的寄語 最近兩年&#xff0c;互聯網大廠的招聘中&#xff0c;測試工程師崗位似…

windows10下PointNet官方代碼Pytorch實現

PointNet模型運行 1.下載源碼并安裝環境 GitCode - 全球開發者的開源社區,開源代碼托管平臺GitCode是面向全球開發者的開源社區,包括原創博客,開源代碼托管,代碼協作,項目管理等。與開發者社區互動,提升您的研發效率和質量。https://gitcode.com/gh_mirrors/po/pointnet.pyto…

git pull 和 git fetch

關于 git pull 和 git fetch 的區別 1. git fetch 作用&#xff1a;從遠程倉庫獲取最新的分支信息和提交記錄&#xff0c;但不會自動合并或修改當前工作目錄中的內容。特點&#xff1a; 它只是更新本地的遠程分支引用&#xff08;例如 remotes/origin/suyuhan&#xff09;&am…

前端開發中的單引號(‘ ‘)、雙引號( )和反引號( `)使用

前端開發中的單引號&#xff08;’ &#xff09;、雙引號&#xff08;" "&#xff09;和反引號&#xff08; &#xff09;使用 在前端開發中&#xff0c;單引號&#xff08;’ &#xff09;、雙引號&#xff08;" "&#xff09;和反引號&#xff08; &…

程序化廣告行業(69/89):DMP與PCP系統核心功能剖析

程序化廣告行業&#xff08;69/89&#xff09;&#xff1a;DMP與PCP系統核心功能剖析 在數字化營銷浪潮中&#xff0c;程序化廣告已成為企業精準觸達目標受眾的關鍵手段。作為行業探索者&#xff0c;我深知其中知識的繁雜與重要性。一直以來&#xff0c;都希望能和大家一同學習…

Amodal3R ,南洋理工推出的 3D 生成模型

Amodal3R 是一款先進的條件式 3D 生成模型&#xff0c;能夠從部分可見的 2D 物體圖像中推斷并重建完整的 3D 結構與外觀。該模型建立在基礎的 3D 生成模型 TRELLIS 之上&#xff0c;通過引入掩碼加權多頭交叉注意力機制與遮擋感知注意力層&#xff0c;利用遮擋先驗知識優化重建…

LLM面試題八

推薦算法工程師面試題 二分類的分類損失函數&#xff1f; 二分類的分類損失函數一般采用交叉熵(Cross Entropy)損失函數&#xff0c;即CE損失函數。二分類問題的CE損失函數可以寫成&#xff1a;其中&#xff0c;y是真實標簽&#xff0c;p是預測標簽&#xff0c;取值為0或1。 …

30天學Java第7天——IO流

概述 基本概念 輸入流&#xff1a;從硬盤到內存。&#xff08;輸入又叫做 讀 read&#xff09;輸出流&#xff1a;從內存到硬盤。&#xff08;輸出又叫做 寫 write&#xff09;字節流&#xff1a;一次讀取一個字節。適合非文本數據&#xff0c;它是萬能的&#xff0c;啥都能讀…