力扣labuladong——一刷day49

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 前言
  • 一、力扣513. 找樹左下角的值
  • 二、力扣666. 路徑總和 IV
  • 三、力扣1261. 在受污染的二叉樹中查找元素
  • 四、力扣572. 另一棵樹的子樹


前言


二叉樹的遞歸分為「遍歷」和「分解問題」兩種思維模式,這道題需要用到「遍歷」的思維模式。

一、力扣513. 找樹左下角的值

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {int len = -1;int res = 0;public int findBottomLeftValue(TreeNode root) {fun(root,1);return res;}public void fun(TreeNode root, int depth){if(root == null){return ;}if(depth > len){len = depth;res = root.val;}fun(root.left, depth+1);fun(root.right, depth+1);}
}

二、力扣666. 路徑總和 IV

class Solution {int res = 0,path = 0;Map<Integer,Integer> map = new HashMap<>();public int pathSum(int[] nums) {for(int a : nums){int value = a%10;int pre = a/10;map.put(pre,value);}fun(1,1);return res;}public int[] decode(int pre){return new int[]{pre/10,pre%10};}public int encode(int row, int index){return row * 10 + index;}public void fun(int row, int index){int pre = encode(row,index);if(!map.containsKey(pre)){return;}path += map.get(pre);int left = encode(row+1,index*2-1);int right = encode(row+1,index*2);if(!map.containsKey(left) && !map.containsKey(right)){res += path;path -= map.get(pre);return;}fun(row+1,index*2-1);fun(row+1,index*2);path -= map.get(pre);}
}

三、力扣1261. 在受污染的二叉樹中查找元素

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class FindElements {Map<Integer,Integer> map = new HashMap<>();TreeNode root = null;public FindElements(TreeNode root) {fun(root,0);this.root = root;}public boolean find(int target) {return map.containsKey(target);}public void fun(TreeNode root, int value){if(root == null){return ;}map.put(value,1);root.val = value;fun(root.left, value*2+1);fun(root.right, value*2+2);}
}/*** Your FindElements object will be instantiated and called as such:* FindElements obj = new FindElements(root);* boolean param_1 = obj.find(target);*/

四、力扣572. 另一棵樹的子樹

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isSubtree(TreeNode root, TreeNode subRoot) {if(root == null){return subRoot == null;}if(fun(root,subRoot)){return true;}return isSubtree(root.left,subRoot) || isSubtree(root.right,subRoot);}public boolean fun(TreeNode root, TreeNode subRoot){if(root == null && subRoot == null){return true;}if(root == null || subRoot == null){return false;}if(root.val != subRoot.val){return false;}return fun(root.left,subRoot.left) && fun(root.right,subRoot.right);}
}

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

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

相關文章

【Leetcode每日一題】mid——6. N 字形變換

題目描述 https://leetcode.cn/problems/zigzag-conversion/description/ 將一個給定字符串 s 根據給定的行數 numRows &#xff0c;以從上往下、從左到右進行 Z 字形排列。 比如輸入字符串為 “PAYPALISHIRING” 行數為 3 時&#xff0c;排列如下&#xff1a; 之后&#xff0…

技術細分|推薦系統——推薦系統中的數據去偏方法

本篇的主要脈絡同樣依據中科大何向南教授、合工大汪萌教授聯合在 TKDE 上的一篇綜述文章展開&#xff1a;Bias and Debias in Recommender System: A Survey and Future Directions。 下面按照前導文章中介紹的數據偏差 Selection Bias、Conformity Bias、Exposure Bias、Posit…

PDF添加文字或者圖片

引入依賴 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>fontbox</artifactId><version>2.0.4</version> </dependency> <dependency><groupId>org.apache.pdfbox</groupId><artifactI…

找JPG格式圖片的地址(持續更新中)

問題描述&#xff1a;找JPG格式圖片的地址 解決辦法&#xff1a; 第一個 谷歌的images 第二個&#xff0c;搜狗圖片和百度圖片 不過下載是WEBP格式&#xff0c;可以使用一個在線WEBP格式轉JPG格式的在線網站即可。 轉換的網址為&#xff1a; https://ezgif.com/webp-to-j…

【學歷是敲門磚】如果你想有個好的起點,不妨沖一沖計算機考研,這本書將會助你一臂之力

目錄 計算機考研難點 《計算機考研精煉1000題》揭秘問答 1. 為什么是1000題&#xff1f; 2. 有什么優勢&#xff1f; 3. 編寫團隊水平如何&#xff1f; 4. 題目及解析品質如何&#xff1f;可以試讀嗎&#xff1f; 購買鏈接 高質量的學習提升圈子 京東熱賣下單鏈接&…

可視化NGINX管理平臺Nginx Proxy Manager

# for CentOSyum install docker-compose -y# for Ubuntuapt-get install docker-compose -y 如果提示&#xff1a; 沒有可用軟件包 docker-compose&#xff0c; 錯誤&#xff1a;無須任何處理 通過 pip 安裝 docker-compose # 添加企業版附加包 yum -y install epel-rel…

java--static的注意事項

1.使用類方法、實例方法時的幾點注意事項 ①類方法中可以直接訪問類的成員&#xff0c;不可以直接訪問實例成員。 ②實例方法中既可以直接訪問類成員&#xff0c;也可以直接訪問實例成員。 ③實例方法中可以出現this關鍵字&#xff0c;類方法中不可以出現this關鍵字的。

利用工業網關進行設備數采的方法-天拓四方分享

在工業物聯網&#xff08;IIoT&#xff09;中&#xff0c;設備數采是一種關鍵技術&#xff0c;它通過收集、分析和傳輸設備運行過程中的各種數據&#xff0c;為工業制造提供重要的信息和洞察。隨著工業4.0和智能制造的快速發展&#xff0c;工業數據采集和處理已經成為工業物聯網…

甲方使用外包真的能節約成本嗎?

語&#xff1a;外包作為一種常見的業務模式&#xff0c;被廣泛應用于各行各業。然而&#xff0c;甲方在選擇外包時&#xff0c;是否真的能夠實現成本節約呢&#xff1f;本文將從多個角度進行探討。 正文&#xff1a; 降低人力成本&#xff1a;外包通常是將某些業務環節或項目交…

2022年全國英烈紀念設施數據,各區縣均有!

中國是一個擁有悠久歷史和燦爛文化的國家&#xff0c;其英烈紀念設施承載著中國人民對為國家獨立、民族解放和民主進步而英勇斗爭的先烈們的崇敬和緬懷之情。 這些設施不僅是中國革命歷史和先烈精神的重要載體&#xff0c;也是傳承紅色文化、弘揚革命精神的重要場所。 今天分享…

【RtpRtcp】3: webrtc m79:video 相關創建及切片、發送

m79 的 客戶端代碼流程。 對于視頻幀: CreateRtpStreamSenders 管理一組RtpStreamSender ,每一個RtpStreamSender 都進行rtp包的發送: 具體發送是RTPSenderVideo 處理,RTPSenderVideo 對收到的h264 幀,進行幀分片rtp,然后一組包一起使用LogAndSendToNetwork 發送的。 Rtp…

js預解釋(預編譯)

js預解釋(預編譯):在Javascript真正被解析之前, js解析引擎會首先把整個文件進行預處理, 以消除一些歧義. 這個預處理的過程就被稱為預解釋 在瀏覽器環境中, js引擎會整合<script>標簽中的內容, 產生window對象, 這個window對象就是全局對象在node環境中, 會產生global對…

Linux中df命令使用

在Linux中&#xff0c;df命令用于顯示磁盤空間的使用情況。它的基本語法如下&#xff1a; df [選項] [文件或目錄]這個命令可以用來查看當前系統上各個磁盤分區的使用情況。如果沒有指定文件或目錄&#xff0c;則所有當前被掛載的文件系統的可用空間將被顯示。 df命令的一些常…

windows11下安裝Tensor RT,并在conda虛擬環境下使用

建議仔細讀一讀NVIDIA官方出的安裝教程&#xff0c;里面有windows、linux等安裝教程&#xff0c;非常詳細&#xff0c;這里再做一下簡要總結。 TensorRT主要有三種安裝模式、五種安裝方式 毫無疑問&#xff0c;在windows系統中&#xff0c;我們只能選擇zip安裝。 安裝tensorR…

安全牛《數據分類分級自動化建設指南》發布|美創入選代表廠商,分享智能化探索

近日&#xff0c;安全牛發布《數據分類分級自動化建設指南》研究報告&#xff0c;對數據分類分級的主要技術、實施要點、選型指導、發展趨勢等展開深入探討&#xff0c;為各行業數據分類分級自動化工作落地提供幫助與指引。 美創科技被列為代表推薦廠商&#xff0c;落地案例—農…

STM32-SPI協議詳解及CubeMX+HAL函數配置分析

1 SPI協議 SPI(Serial Peripheral interface)串行外圍設備接口是同步全雙工的通信總線,在芯片的管腳上只占用四根線。 1.1 物理層 SS/NSS/CS:從設備選擇信號線(片選信號線)。由主設備控制,選擇指定的從設備。 當主機要選擇從設備時,把該從設備的SS信號線設置為低電平…

輕松記錄收支明細,一鍵打印,財務無憂!

作為現代人&#xff0c;管理好個人財務是非常重要的。但是&#xff0c;如何記錄收支明細并打印出來呢&#xff1f;今天&#xff0c;我們向您推薦一款財務軟件&#xff0c;幫助您輕松解決這個問題。 首先第一步&#xff0c;我們要打開【晨曦記賬本】&#xff0c;并登錄賬號。 第…

2023.11.22 IDEA Spring Boot 項目熱部署

目錄 引言 操作步驟 1. 在 pom.xml 中添加熱部署框架支持 2. Setting 開啟項目自動編譯 3. 以后創建的新項目進行同步配置 4. 重復 配置 步驟2 的內容 5. 開啟運行中的熱部署 引言 Spring Boot 的熱部署是一種在項目正在運行的時候修改代碼&#xff0c;卻不需要重新啟動…

yolov7訓練數據集詳細流程bike-car-person

一、準備深度學習環境 下載yolov7代碼 下載完成解壓放在自己的主目錄 命名yolov7-4 二、 準備自己的數據集 1.進入主目錄 2.進入data目錄下把你的xml文件夾命名為Annotations&#xff0c;把你的存放圖片文件夾命名為images 3.分別新建ImageSets、imagtest&#xff08;里面…

幾款Java源碼掃描工具(FindBugs、PMD、SonarQube、Fortify、WebInspect)

說明 有幾個常用的Java源碼掃描工具可以幫助您進行源代碼分析和檢查。以下是其中一些工具&#xff1a; FindBugs&#xff1a;FindBugs是一個靜態分析工具&#xff0c;用于查找Java代碼中的潛在缺陷和錯誤。它可以檢測出空指針引用、資源未關閉、不良的代碼實踐等問題。FindBu…