代碼隨想錄第七天(454、383、15、18)

題目一:四數相加II

鏈接:

代碼隨想錄

思路:首先用雙循環遍歷構成a+b的值和出現的次數,用字典接收,由于a+b+c+d=0,因為在對c和d進行雙循環后,在字典中找到0-c-d,得出它的值也就是出現次數,進行出現次數的累計,就得到了

有多少個元組?(i, j, k, l)?能滿足:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0? ? ? ? ? ? ? ? ? ? ?
    class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:hashmap =dict()for a in nums1:for b in nums2:hashmap[a+b]=hashmap.get(a+b,0)+1 count = 0for c in nums3:for d in nums4:target = -c-dif target in hashmap:count+=hashmap[target]return count
    題目二:贖金信?
  • 題目鏈接/文章講解: 代碼隨想錄

    思路:通過比較贖金信的各個字母出現的次數都要小于等于雜志出現的字母個數來判定,定義數組,用26個字母的unicode次序來確定索引,每個字母出現一次,對應索引次數加1

    class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:ransomNote_count = [0]*26magazine_count = [0]*26for i in ransomNote:ransomNote_count[ord(i)-ord('a')]+=1for i in magazine:magazine_count[ord(i)-ord('a')]+=1return all(ransomNote_count[a]<=magazine_count[a] for a in range(26))
    題目三:三數之和

    思路:

    使用雙指針的方法,每遍歷一次數組,都是先讓左邊第一個數作為i,固定,讓left往右移動,right往左移動進行遍歷,如果sum>0,則讓right往左移動,如果sum<0,則讓left往右移動;注意點是i和left以及right的去重,

    i的去重:檢查第i項以及第i-1項是否相等,如果相等,就跳過

    left 和right的去重:等到往結果result中加入一個元組之后,在考慮去重,只要當前right和往左移動后的下一個right數組對應的值相等,就right減一,left同理

    class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:result = []nums.sort()for i in range(len(nums)):if nums[i]>0:return resultif i>0 and nums[i]==nums[i-1]:continueleft = i+1right = len(nums)-1while left < right:sum_ = nums[i]+nums[left]+nums[right] if sum_ >0:right -=1elif sum_ <0:left +=1else:result.append([nums[i],nums[left],nums[right]])while left < right and nums[right] == nums[right-1]:right -=1while left < right and nums[left] == nums[left+1]:left +=1right-=1left +=1return result
    題目四:四數之和

    思路:跟三數之和,相比,一是多了一層循環,多了一次去重;二是由于target不確定是否是大于零還是小于零,因此需要進行一級剪枝操作,也就是如果nums[k]大于零,且target大于零,且nums[k]>0,那么就跳出循環;二級剪枝操作,判斷nums[k]+nums[i]>target 且target大于零,是的話就跳出循環

    class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:result =[]nums.sort()n = len(nums)for k in range(n):if(nums[k]>target and target >0 and nums[k]>0):breakif(k>0 and nums[k]==nums[k-1]):continuefor i in range(k+1,n):if(nums[k]+nums[i]>target and target >0):breakif(i>k+1 and nums[i]==nums[i-1]):continueleft  = i+1right = n-1while left < right:sum_ = nums[k]+nums[i]+nums[left]+nums[right]if sum_ > target:right -=1elif sum_ < target:left +=1else:result.append([nums[k],nums[i],nums[left],nums[right]])while left < right and nums[left] == nums[left +1]:left +=1while left < right and nums[right] == nums[right-1]:right -=1left +=1right -=1return result   

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

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

相關文章

在瀏覽器控制臺中輸出js對象,為什么顏色不同,有深有淺

打開console&#xff0c;輸入自定義的javascript對象的時候&#xff0c;打開看發現對象的屬性是深紫色&#xff0c;后面有一些對象是淺紫色的&#xff0c;比如Array對象和一堆SVG,HTML,CSS開頭的對象&#xff0c;常用的prototype和__proto__也是淺紫色的。 請問這里深紫和淺紫…

【Unity】制作簡易計時器

一、創建計時器相關的變量 我們需要創建三個變量&#xff0c;分別是&#xff1a;計時時長、計時剩余時長、是否處于計時狀態。 public float duration;//計時時長 public float remain; //計時剩余時長 public bool isCount; //是否處于計時狀態 二、初始化變量 我們可以直…

什么是Maven以及如何配置Maven

T04BF &#x1f44b;專欄: 算法|JAVA|MySQL|C語言 &#x1faf5; 今天你敲代碼了嗎 文章目錄 1.Maven1.1什么是Maven1.2Maven的好處1.3使用idea創建一個Maven項目1.4Maven的核心功能1.4.1項目構建 1.5Maven倉庫1.5.2 中央倉庫1.5.3 私有服務器(私服) 1.6Maven設置國內源 1.Mave…

[pytorch]常用函數(自用)

一、公共部分 1、torch.linespace 返回一維張量&#xff0c;在start和end之間&#xff08;包括start也包括end&#xff09;的均勻間隔的steps個點&#xff0c;長度為steps。 print(torch.linspace(1,10,3)) #輸出tensor([ 1.0000, 5.5000, 10.0000]) print(torch.linspace…

文本分類--NLP-AI(八)

文本分類任務 任務簡介1.字符數值化方式1方式2 2.池化&#xff08;pooling&#xff09;3.全連接層4.歸一化函數&#xff08;Sigmoid&#xff09;5.總結 從任務抽象新的技術點Embedding層池化層 任務簡介 任務介紹&#xff1a; 字符串分類&#xff0c;根據一句話的含媽量&#…

伊利25屆校招24年社招網申入職北森測評題庫全攻略!一文通!

伊利校招社招網申測評全攻略&#x1f680; 親愛的求職小伙伴們&#xff0c;今天我要分享一份伊利校招社招網申測評的全攻略&#xff0c;希望能助你們一臂之力&#xff01; 測評概覽 伊利的網申測評分為六個部分&#xff0c;總共約60分鐘的答題時間&#xff0c;涵蓋了言語邏輯、…

避免 WebSocket 連接被拒絕

一、檢查服務器配置和權限 (一)確認服務器訪問權限 確保您的客戶端有訪問服務器的合法權限。如果服務器設置了訪問控制列表(ACL)或僅允許特定的源(Origin)進行連接,您需要確保客戶端的請求來源在允許的范圍內。例如,如果服務器只允許來自特定域名的連接,而您的客戶端從…

【微信小程序開發】如何定義公共的js函數,其它頁面可以調用

在微信小程序開發中&#xff0c;可以通過以下步驟定義和使用公共的 JS 函數&#xff0c;使得其它頁面可以調用&#xff1a; 1. 創建一個公共的 JS 文件&#xff1a;在項目的 utils 目錄下創建一個 JS 文件&#xff0c;例如 utils/util.js。 2. 定義公共函數&#xff1a;在 uti…

在word中刪除endnote參考文獻之間的空行

如圖&#xff0c;在References中&#xff0c;每個文獻之間都有空行。不建議手動刪除。打開Endnote。 打開style manager 刪除layout中的換行符。保存&#xff0c;在word中更新參考文獻即可。

Python和C++全球導航衛星系統和機器人姿態觸覺感知二分圖算法

&#x1f3af;要點 &#x1f3af;馬爾可夫隨機場網格推理學習 | &#x1f3af;二維伊辛模型四連網格模型推理 | &#x1f3af;統計物理學模型擾動與最大乘積二值反卷積 | &#x1f3af;受限玻爾茲曼機擾動和最大乘積采樣 | &#x1f3af;視覺概率生成模型測試圖像 &#x1f3…

從課本上面開始學習的51單片機究竟有什么特點,在現在的市場上還有應用嗎?

引言 51單片機&#xff0c;作為一種經典的微控制器&#xff0c;被廣泛應用于各種嵌入式系統中。盡管如今ARM架構的高性能低成本單片機在市場上占據主導地位&#xff0c;但51單片機憑借其獨特的優勢依然在某些領域保持著應用價值。本文將深入探討51單片機的特點、架構、應用以及…

ubuntu22.04 安裝boost

下載boost壓縮包&#xff0c;我這里上傳了一份1_81_0版本tar -xzvf boost_1_81_0.tar.gzcd boost_1_81_0/sudo apt install build-essential g autotools-dev libicu-dev libbz2-dev -ysudo ./bootstrap.sh --prefix/usr/./b2sudo ./b2 install 上述7步完成后&#xff0c;相關…

數學建模·模糊評價法

模糊評價法 一種解決評價問題或者得出最佳方案的方法 主觀性仍比較強 具體定義 三集&#xff1a;因素集&#xff0c;評語集和權重集&#xff0c;通過模擬矩陣的處理得到最合理的評語 具體步驟 因素集 因素集的確定不難&#xff0c;難在對分級評價時&#xff0c;對因素集的分級…

LeetCode --- 134雙周賽

題目 3206. 交替組 I 3207. 與敵人戰斗后的最大分數 3208. 交替組 II 3209. 子數組按位與值為 K 的數目 一、交替組 I & II 題目中問環形數組中交替組的長度為3的子數組個數&#xff0c;主要的問題在于它是環形的&#xff0c;我們要考慮首尾相接的情況&#xff0c;如何…

阿里新開源GPU版本的FunASR安裝避坑

#當前安裝過程沒有cpu版本順利 1.個人在自己的電腦上安裝ubantu系統&#xff0c;以便使用本身的顯卡功能(本人顯卡NVIDIA GeForce RTX 4060)&#xff08;這里需要注意&#xff0c;更新里面有附加驅動安裝驅動會導致黑屏&#xff0c;小伙伴不要心急重裝系統&#xff0c;可以ctr…

ES索引模板

在Elasticsearch中&#xff0c;索引模板&#xff08;Index Templates&#xff09;是用來預定義新創建索引的設置和映射的一種機制。當你創建了一個索引模板&#xff0c;它會包含一系列的默認設置和映射規則&#xff0c;這些規則會在滿足一定條件的新索引被創建時自動應用。 索…

UOS查看系統信息命令行

UOS查看系統信息命令行 *** Rz整理 僅供參考 *** dmidecode查看System Boot信息 midecode -t 32 dmidecode查看System Reset信息 midecode -t 23 dmidecode查看機箱信息 midecode -t chassis dmidecode查看BIOS信息 midecode -t bios dmidecode查看CPU信息 dmidecode …

leetcode 404. 左葉子之和

給定二叉樹的根節點 root &#xff0c;返回所有左葉子之和。 示例 1&#xff1a; 輸入: root [3,9,20,null,null,15,7] 輸出: 24 解釋: 在這個二叉樹中&#xff0c;有兩個左葉子&#xff0c;分別是 9 和 15&#xff0c;所以返回 24示例 2: 輸入: root [1] 輸出: 0提示: 節點…

Linux 下使用Docker安裝redis

redis&#xff1a; 是一個高性能的&#xff0c;鍵值對的&#xff0c;將數據存儲到內存中的非關系型數據庫&#xff08;nosql數據庫 not only sql&#xff09; 高性能&#xff1a;數據存在內存中&#xff0c;直接訪問內存 鍵值對&#xff1a;新聞id&#xff08;鍵&#xff09…

c++數據結構--構造無向圖(算法6.1),深度和廣度遍歷

實驗內容&#xff1a; 實現教材算法6.2利用鄰接矩陣構造無向圖的算法&#xff0c;提供從鄰接矩陣獲得鄰接表的功能&#xff0c;在此基礎上進行深度優先遍歷和廣度優先遍歷。 實驗步驟&#xff1a; &#xff08;1&#xff09;按照實驗要求編寫代碼&#xff0c;構造無向圖。 ?…