298. Binary Tree Longest Consecutive Sequence

題目:
Given a binary tree, find the length of the longest consecutive sequence path.

The path refers to any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The longest consecutive path need to be from parent to child (cannot be the reverse).

For example,

   1\3/ \2   4\5

Longest consecutive sequence path is 3-4-5, so return 3.

   2\3/ 2    / 1

Longest consecutive sequence path is 2-3,not3-2-1, so return 2.

解答:
分治,一種不帶返回值,但需要用全局變量,一種帶返回值,不用全局變量:
1.

//有全局變量private int max = 0;public void Helper(TreeNode root, int target, int count) {if (root == null) return;if (root.val == target) {count++;} else {count = 1;}max = Math.max(max, count);Helper(root.left, root.val + 1, count);Helper(root.right, root.val + 1, count);}public int longestConsecutive(TreeNode root) {if (root == null) return 0;Helper(root, root.val + 1, 1);return max;}

2.

public int Helper(TreeNode root, int target, int count) {if (root == null) return 1;count = root.val == target ? count + 1 : 1;int left = Helper(root.left, root.val + 1, count);int right = Helper(root.right, root.val + 1, count);return Math.max(Math.max(left, right), count);
}public int longestConsecutive(TreeNode root) {if (root == null) return 0;return Math.max(Helper(root.left, root.val + 1, 1), Helper(root.right, root.val + 1, 1));
}

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

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

相關文章

Educational Codeforces Round 37 (Rated for Div. 2)

Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 題意&#xff1a;Max想給花園澆水。花園可被視為長度為n的花園床&#xff0c;花園內共有k個水龍頭&#xff0c;分別在花園的xi&#xff08;0≤xi<n&#xff09;處&#xff0c;在j秒內花園的[xi-(j-1…

詳解 .Net6 Minimal API 的使用方式

隨著 .Net6 的發布&#xff0c;微軟也改進了對之前 ASP.NET Core 構建方式&#xff0c;使用了新的 Minimal API 模式。以前默認的方式是需要在 Startup 中注冊 IOC 和中間件相關&#xff0c;但是在 Minimal API 模式下你只需要簡單的寫幾行代碼就可以構建一個 ASP.NET Core的We…

.NET 20周年專訪 - 張善友:.NET 技術是如何賦能并改變世界的

點擊藍字關注我們今年是 .NET 發布20周年&#xff0c;值此20周年之際&#xff0c;微軟 Reactor 特別策劃了 .NET 20周年系列主題專訪。我們邀請了數位中國 .NET 領域的技術專家以及社區名人&#xff0c;來聊聊他們與 .NET 的情緣、認識 .NET 的契機、選擇 .NET 的理由&#xff…

【ArcGIS錯誤異常100問】之005:ArcGIS字段計算器python中文編碼問題解決

問題描述&#xff1a; 現因工作的需要&#xff0c;對照2017最新版&#xff1a;《土地利用現狀分類》&#xff08;GBT 21010-2017&#xff09;&#xff0c;需根據DLMC對DLBM進行批量修改&#xff0c;如旱地是0103&#xff0c;其他林地是0307等&#xff0c;共計19種用地類型。 問…

【ArcGIS微課1000例】0055:根據圖層創建自定義圖例符號案例教程

在利用ArcGIS作圖時,有時候需要根據線狀或面狀圖層自己的矢量形狀去創建圖例項目符號,本文講解根據圖層創建自定義圖例符號。 本實驗使用的數據為配套案例數據包中的0055.rar中的水庫數據。 文章目錄 1. 添加“新建圖例圖面形狀”工具2. 根據圖層形狀創建符號3. 繪制形狀符號…

jQuery 3.3.1已經發布,開發團隊正在準備4.0版本

\看新聞很累&#xff1f;看技術新聞更累&#xff1f;試試下載InfoQ手機客戶端&#xff0c;每天上下班路上聽新聞&#xff0c;有趣還有料&#xff01;\\\jQuery 3.3.1已經發布&#xff0c;其中包含了許多新特性也提出要移除幾個之前的特性&#xff0c;移除一些特性是為了jQuery …

C#.NET版本、Visual Studio版本對應關系

C#版本.NET版本Visual Studio版本發布日期特性C# 1.0.NET Framework 1.0Visual Studio .NET 20022002-02-13委托、事件C# 1.1.NET Framework 1.1Visual Studio .NET 20032003-04-24APM&#xff08;異步編程模型&#xff09;C# 2.0.NET Framework 2.0Visual Studio 20052005-11-…

真魔法!圖形化管理 Kafka 超輕量的自動化工具

Kafka Magic[1] 是一個用于處理 Apache Kafka 集群的 GUI 工具。它可以查找和顯示消息、在 Topic 之間轉換和移動消息、查看和更新模式、管理 Topic 以及自動化復雜任務。Kafka Magic 通過方便的用戶界面促進 Topic 管理、QA 和集成測試。Kafka Magic Community Edition 可免費…

前端工程構建工具——Yeoman

一、Yeoman 簡介 通常在開發新項目時我們都需要配置工程環境&#xff0c;開發目錄&#xff0c;需要下載一些庫、框架文件&#xff08;如 jQuery、Backbone 等&#xff09;&#xff0c;配置編譯環境&#xff08;Less、Sass、Coffeescript等&#xff09;&#xff0c;甚至還要配置…

【FME實戰教程】001:FME2020中文安裝圖文教程(附安裝包下載)

文章目錄1. 安裝license2. 安裝FME Desktop3. 安裝中文語言4. FME軟件下載地址1. 安裝license 打開軟件安裝包中的fme-flexnet-win-x64.msi&#xff0c;如下圖所示&#xff1a; 點擊Next。 點擊Next。 單擊install。 點擊finish&#xff0c;完成。 &#xff08;1&#xff09;修…

算法導論 第三部分——基本數據結構——第14章:數據結構的擴張

本章通過擴張紅黑樹構造出兩種數據結構&#xff1a;動態順序統計和區間樹。 1、動態順序統計&#xff1a;查找倒數第i小的數據 復雜度為 lg(n) 為什么是擴張紅黑樹而不是搜索二叉樹或者二叉樹&#xff1f; 相對于搜索二叉樹&#xff0c;紅黑樹的平衡性更好&#xff0c;高度在l…

/hgfs下無共享文件夾?/mnt下沒有hgfs文件夾?vmhgfs-fuse:找不到命令?

前言&#xff1a;最近在使用linux的過程中&#xff0c;需要在宿主操作系統與客戶操作系統間建立共享文件夾&#xff0c;遇到了些許問題&#xff0c;在網上參考了許多文章與各種嘗試后&#xff0c;現得以解決&#xff0c;分享如下。1、系統環境&#xff1a;宿主操作系統&#xf…

GraphQL入門有

本文將從GraphQL是什么&#xff0c;為什么要使用GraphQL&#xff0c;使用GraphQL創建簡單例子&#xff0c;以及GraphQL實戰&#xff0c;四個方面對GraphQL進行闡述。說得不對的地方&#xff0c;希望大家指出斧正。 github項目地址&#xff1a;https://github.com/Charming2015/…

對話莊表偉:開源第一課

莊表偉目前就職于華為的開源管理中心。自2014年開源社成立之初&#xff0c;他便友情參與了開源社的籌辦工作。2017年&#xff0c;開源社轉型為完全由個人成員組成的組織&#xff0c;莊表偉就以個人身份加入了開源社。作為開源社理事&#xff0c;當被問到“為什么要參選”時&…

【FME實戰教程】002:FME完美實現CAD數據轉shp案例教程(以三調土地利用現狀數據為例)

FME完美實現CAD數據轉shp案例教程&#xff08;以三調土地利用數據為例&#xff09; 文章目錄1. cad數據預覽2. 轉換過程3. shp數據預覽1. cad數據預覽 2. 轉換過程 &#xff08;1&#xff09;打開FME Desktop2020中文軟件&#xff0c;點擊【新建】。 &#xff08;2&#xff09…

Linux學習之01_基礎命令介紹

初學Linux&#xff0c;還在摸索中&#xff0c;在這個過程中希望能記錄下學習到的東西&#xff0c;參考的的書籍為《鳥哥的Linux私房菜》 在這里學到的主要命令有這幾個&#xff1a; data cal bc man shutdown sync 1、基礎命令操作 data----顯示日期與實踐的命令 cal----顯示日…

窮舉算法實例

public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("輸入頭的個數:");int headsc.nextInt();System.out.println("輸入腿的個數:");int footsc.nextInt();for(int i0;i<head;i){//假設兔子的數量為iint jh…

VMware Workstation All Key

官方下載&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 懶人打包&#xff1a;鏈接:https://pan.baidu.com/s/1kWJRfjL 密碼:wzce 注&#xff1a;如果是WinXP或32位系統請用 10.0 版本 VMware 所有版本永久許可證激活密鑰&…

【GlobalMapper精品教程】017:KML generator快速將坐標轉為KML文件

本文介紹KML generator軟件,并快速將坐標轉為KML文件的使用方法,并用globalmapper中打開kml文件加以驗證。本專欄配套完整的案例數據包,請打開data017.rar獲取軟件及數據。 文章目錄 1. KML文件介紹2. kml generator軟件介紹2.1 單點KML制作2.2 Excel數據KML制作2.3 文本文件…

從cpp向qml文件傳中文字符串的方法

Qt 使用Unicode編碼來存儲操作字符串&#xff0c;但很多情況下&#xff0c;我們不得不處理采用其他編碼格式的數據&#xff0c;舉例來說&#xff0c;中文多采用GBK和Big5編碼&#xff0c;而日本則多采用Shift-JIS or ISO2022編碼。將其他編碼格式的字符串轉化成采用Unicode編碼…