力扣爆刷第163天之TOP100五連刷81-85(回文鏈表、路徑和、最長重復子數組)

力扣爆刷第163天之TOP100五連刷81-85(回文鏈表、路徑和、最長重復子數組)

文章目錄

      • 力扣爆刷第163天之TOP100五連刷81-85(回文鏈表、路徑和、最長重復子數組)
      • 一、234. 回文鏈表
      • 二、112. 路徑總和
      • 三、169. 多數元素
      • 四、662. 二叉樹最大寬度
      • 五、718. 最長重復子數組

一、234. 回文鏈表

題目鏈接:https://leetcode.cn/problems/palindrome-linked-list/description/
思路:判斷鏈表是否是回文鏈表,也是經典題目了,一般對于鏈表來說基本操作就是快慢指針,通過快慢指針尋找鏈表的中間節點,然后把后一半鏈表翻轉,頭插法或者尾插法都可以,這樣前一半和后一半的鏈表都正序了,就可以逐一比較了,只要相等即可。
qiu

class Solution {public boolean isPalindrome(ListNode head) {ListNode root = new ListNode(-1, head);ListNode slow = root, fast = root;while(fast != null && fast.next != null) {slow = slow.next;fast = fast.next.next;}ListNode t = new ListNode();fast = slow.next;slow.next = null;slow = fast;while(slow != null) {ListNode p = slow.next;slow.next = t.next;t.next = slow;slow = p;}slow = head;fast = t.next;while(fast != null) {if(slow.val != fast.val) return false;slow = slow.next;fast = fast.next;}return true;}}

二、112. 路徑總和

題目鏈接:https://leetcode.cn/problems/path-sum/description/
思路:求路徑總和,也就是存不存在一條路徑上的總和等于目標和,這個尋找的過程類似于回溯,找到就OK了,找不到回溯返回,可以把累加和添加在函數的參數里,這樣可以省去遞歸的撤銷代碼。
在這里插入圖片描述

class Solution {boolean flag = false;public boolean hasPathSum(TreeNode root, int targetSum) {traverse(root, targetSum, 0);return flag;}void traverse(TreeNode root, int targetSum, int sum) {if(root == null || flag) return ;if(root.left == null && root.right == null && sum + root.val == targetSum) flag = true;traverse(root.left, targetSum, sum + root.val);traverse(root.right, targetSum, sum + root.val);}
}

三、169. 多數元素

題目鏈接:https://leetcode.cn/problems/majority-element/description/
思路:求數組中的多數元素,何為多數元素,即數量超過總個數的一半即為多數,可以利用這一特性,采用計數法,用一個變量計數,另一個變量記錄元素值,元素值相同就計數,不同就減,減到0,就替換元素,非常簡單,利用計數法。

class Solution {public int majorityElement(int[] nums) {int num = 0, t = 0;for(int i : nums) {if(num == 0) t = i;if(i == t) num++;else num--;}return t;}
}

四、662. 二叉樹最大寬度

題目鏈接:https://leetcode.cn/problems/maximum-width-of-binary-tree/description/
思路:求二叉樹的最大寬度,本題對于寬度的定義是每一層中最左邊的節點和最右邊的節點所組成的區間中的所有節點的個數,包括null節點,所以可以采取給二叉樹編碼的方式,給每一個節點編碼,并且記錄下每一層第一個向下突破深度的節點,即可根據節點編號計算寬度。

class Solution {List<Integer> list = new ArrayList<>();int max = 1;public int widthOfBinaryTree(TreeNode root) {traverse(root, 0, 0);return max;}void traverse(TreeNode root, int id, int deep) {if(root == null) return ;if(list.size() == deep) {list.add(id);}else{max = Math.max(max, id - list.get(deep)+1);}traverse(root.left, id * 2 + 1, deep + 1);traverse(root.right, id * 2 + 2, deep + 1);}}

五、718. 最長重復子數組

題目鏈接:https://leetcode.cn/problems/maximum-length-of-repeated-subarray/description/
思路:求最長重復子數組,也是很經典的動態規劃題目,子數組是連續的,定義dp[i][j]表示以nums1[i]和nums2[j]為結尾的最長重復子數組的長度,根據定義來看,如果nums1[i] == nums2[j] 那么dp[i][j] = dp[i-1][j-1],這是因為如果結尾相等,那么他們的長度自然依賴于上一個狀態,如果不等自然是0。

class Solution {public int findLength(int[] nums1, int[] nums2) {int m = nums1.length, n = nums2.length, max = 0;int[][] dp = new int[m+1][n+1];for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {if(nums1[i] == nums2[j]) {dp[i+1][j+1] = dp[i][j] + 1;}if(dp[i+1][j+1] > max) max = dp[i+1][j+1];}}return max;}
}

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

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

相關文章

洛谷 B4006 [GESP202406 四級] 寶箱

題目描述 小楊發現了 &#x1d45b; 個寶箱&#xff0c;其中第 &#x1d456; 個寶箱的價值是 &#x1d44e;&#x1d456;?。 小楊可以選擇一些寶箱放入背包并帶走&#xff0c;但是小楊的背包比較特殊&#xff0c;假設小楊選擇的寶箱中最大價值為 &#x1d465;&#xff0c…

next input代碼嘗試編寫

使用有限狀態機&#xff08;FSM&#xff09;可以使代碼結構更清晰&#xff0c;特別是處理復雜的狀態和過渡時。以下是如何根據你提供的步驟&#xff0c;用有限狀態機來實現自動校準和中斷觸發邏輯的示例代碼。 狀態定義 IDLE: 空閑狀態&#xff0c;等待數據輸入。CALIBRATING…

Python高級(三)_正則表達式

Python高級-正則表達式 第三章 正則表達式 在開發中會有大量的字符串處理工作,其中經常會涉及到字符串格式的校驗。 1、正則表達式概述 正則表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法(英語:Regular Expression,在代碼中常簡寫為regex、…

PostgreSql中的JSON數據類型

PostgreSQL 提供了兩種 JSON 數據類型&#xff1a;JSON 以及 JSONB。這兩種類型主要的區別在于數據存儲格式&#xff0c;JSONB 使用二進制格式存儲數據&#xff0c;更易于處理。 PostgreSQL 推薦優先選擇 JSONB 數據類型。 兩種數據類型之間的區別&#xff1a; 功能JSONJSONB存…

網絡建設與運維23國賽網絡運維正式賽題解析

競賽環境請看主頁&#xff01; 23國賽網絡運維 任務描述&#xff1a;某集團公司在更新設備后&#xff0c;路由之間無法正常通信&#xff0c;請修 復網絡達到正常通信。 &#xff08;1&#xff09; 請在server1“管理員”下拉菜單中選擇“鏡像”選項卡&#xff0c;點 擊 “創…

超聲波眼鏡清洗機有用嗎?四大主流超聲波清洗機品牌整理測評

長期佩戴的眼鏡&#xff0c;若不定期清洗&#xff0c;不僅鏡片會逐漸積聚油脂、灰塵&#xff0c;影響透光率&#xff0c;使視物模糊&#xff0c;更嚴重的是&#xff0c;眼鏡上日益增加的微小雜質和細菌可能會逐漸影響到眼睛健康&#xff0c;導致視力下降、眼部疾病等問題。 這…

Go 1.19.4 函數-Day 08

1. 函數概念和調用原理 1.1 基本介紹 函數是基本的代碼塊&#xff0c;用于執行一個任務。 Go 語言最少有個 main() 函數。 你可以通過函數來劃分不同功能&#xff0c;邏輯上每個函數執行的是指定的任務。 函數聲明告訴了編譯器函數的名稱&#xff0c;返回類型&#xff0c;和參…

STM32 - PWR 筆記

PWR&#xff08;Power Control&#xff09;電源控制 PWR 負責管理 STM32 內部的電源供電部分&#xff0c;可以實現 可編程電壓監測器 和 低功耗模式 的功能 可編程電壓監測器&#xff08;PVD&#xff09;可以監控VDD電源電壓&#xff0c;當VDD下降到PVD閥值以下或上升到PVD…

usbserver工程師手記(三)手工開通 OTP功能

1、設定密鑰&#xff0c;用戶自行選擇一個密鑰&#xff0c;以下以密鑰為 EAZAYOKNGETBOPC5 為例說明 2、usb server 配置otp 密鑰&#xff0c;目前還沒有UI 界面開通&#xff0c;后續版本會支持從管理界面開通 curl -X POST -H Content-Type: application/json -H Accept: app…

關于transformers庫驗證時不進入compute_metrics方法的一些坑

生成式任務輸入就是標簽 transformers在進入compute_metrics前會有一個判斷&#xff0c;源碼如下&#xff1a; # 版本 transformers4.41.2 # 在trainer.py 的 3842 行 # Metrics! if (self.compute_metrics is not Noneand all_preds is not Noneand all_labels is not Nonea…

Centos7下zabbix安裝與部署

Centos7下zabbix安裝與部署 一、Zabbix介紹 1、zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案 2、zabbix能監視各種網絡參數&#xff0c;保證服務器系統的安全運營&#xff1b;并提供靈活的通知機制以讓系統管理員快速定位/解決存在的各…

活動策劃秘籍:如何讓企業活動引爆市場?

作為一個活動策劃&#xff0c;我的經驗是&#xff0c;活動策劃是一場精心編排的交響樂&#xff0c;每一個音符都要恰到好處。 想要做好企業活動策劃工作的關鍵在于綜合考慮多個方面&#xff0c;并確保每個環節的順暢執行。 以下是7個關鍵要素&#xff0c;只要用心體會&#x…

學習小記-使用Redis的令牌桶算法實現分布式限流

在介紹令牌桶算法前先介紹一下漏桶算法&#xff08;Leaky Bucket&#xff09; 漏桶算法&#xff08;Leaky Bucket&#xff09; 漏桶算法是一種固定容量的容器模型&#xff0c;它通過控制數據流入和流出的速度來限制數據的傳輸速率。漏桶算法的主要特點包括&#xff1a; 固定…

鴻蒙開發:Universal Keystore Kit(密鑰管理服務)【密鑰派生(C/C++)】

密鑰派生(C/C) 以HKDF256密鑰為例&#xff0c;完成密鑰派生。具體的場景介紹及支持的算法規格&#xff0c;請參考[密鑰生成支持的算法]。 在CMake腳本中鏈接相關動態庫 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)開發步驟 生成密鑰 指定密鑰別名。 初始化密鑰屬…

通過電壓差判定無源晶振是否起振正確嗎?

在電子工程中&#xff0c;無源晶振作為許多數字電路的基礎組件&#xff0c;其是否成功起振對于系統的正常運行至關重要。然而&#xff0c;通過簡單檢測晶振兩端的電壓差來判斷晶振是否工作&#xff0c;這一方法存在一定的誤區&#xff0c;晶發電子將深入探討這一話題&#xff0…

2008年下半年軟件設計師【下午題】真題及答案

文章目錄 2008年下半年軟件設計師下午題--真題2008年下半年軟件設計師下午題--答案 2008年下半年軟件設計師下午題–真題 2008年下半年軟件設計師下午題–答案

四川赤橙宏海商務信息咨詢有限公司抖音電商服務靠譜嗎?

在數字化浪潮席卷全球的今天&#xff0c;電商行業蓬勃發展&#xff0c;各種新興電商平臺層出不窮。其中&#xff0c;抖音電商以其獨特的社交屬性和龐大的用戶基礎&#xff0c;迅速崛起為行業新星。四川赤橙宏海商務信息咨詢有限公司&#xff0c;作為專注于抖音電商服務的佼佼者…

個人怎么交易現貨黃金:加速形態

我們作為普通個人&#xff0c;在現貨黃金市場中交易就需要掌握相應的現貨黃金投資技巧。下面我們就來介紹一個&#xff0c;個人怎么交易現貨黃金的形態——加速形態。 加速形態是用于判斷市場趨勢力竭的情況&#xff0c;這種趨勢可以是上升&#xff0c;也可以是下跌。但是要注意…

用Qwt進行圖表和數據可視化開發

目錄 Qwt介紹 示例應用場景 典型QWT開發流程 舉一些Qwt的例子&#xff0c;多繪制幾種類型的圖像 1. 繪制折線圖 (Line Plot) 2. 繪制散點圖 (Scatter Plot) 3. 繪制柱狀圖 (Bar Plot) 4. 繪制直方圖 (Histogram) Qwt介紹 QWT開發主要涉及使用QWT庫進行圖表和數據可視化…

晉升業內新寵兒,MoE模型給了AI行業兩條關鍵出路

文 | 智能相對論 作者 | 陳泊丞 今年以來&#xff0c;MoE模型成了AI行業的新寵兒。 一方面&#xff0c;越來越多的廠商在自家的閉源模型上采用了MoE架構。在海外&#xff0c;OpenAI的GPT-4、谷歌的Gemini、Mistral AI的Mistral、xAI的Grok-1等主流大模型都采用了MoE架構。 …