24 遞歸求解二叉樹打家劫舍

問題描述:在上次大街萬一條街道之后和一圈房屋后,小偷又發現了一個新的可行竊的地區。這個地區只有一個入口,我們稱之為根。除了根之外,每棟房子有且只有一個父房子與之項鏈,一番偵查之后,聰明的小偷意識到這個地方的所有房屋的排列類似于一顆二叉樹,如果兩個直接項鏈的房子在同一天北大街,房屋將自動報警,計算在不觸動警報的情況下,小偷一晚上能夠盜取的最高金額;

遞歸求解分析:采用一個參數表征父節點是否選取,若沒有偷父節點,則子節點有選和不選兩種情況,若偷了父節點,則只能不選該節點,最后比較選根節點和不選根結點的最大值返回;

private int maxProfit(TreeNode node,int ischooseparent)
{
//如果當前節點為null,則返回0
if(node==null)
{
return 0;
}
//如果選擇了父節點,則當前節點不能選擇,只能向下選擇,
if(ischooseparent)
{
return maxProfit(node.left,false)+maxProfit(node.left,false);
}
else
{
//沒有的話,可以選擇父節點和不選擇父節點兩種情況,并取最大值返回
return Math.max(node.val+maxProfit(node.left,true)+maxProfit(node.right,false),maxProfit(node.left,false)+maxProfit(node.left,false))
}
}public int MaxProfit(TreeNode node )
{
//從根節點開始遞歸遍歷,且在這之前沒有選擇根結點的父節點,從而傳值為false
return maxProfit(node,false);
}

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

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

相關文章

CGAL的3D簡單網格數據結構

由具有多個曲面面片的多面體曲面生成的多域四面體網格。將顯示完整的三角剖分,包括屬于或不屬于網格復合體、曲面面片和特征邊的單元。 1、網格復合體、 此軟件包致力于三維單純形網格數據結構的表示。 一個3D單純形復雜體由點、線段、三角形、四面體及其相應的組合…

從零開始搭建鏈上dex自動化價差套利程序(13)

優化 優化觸發條件: 之前的觸發條件有問題,導致遲遲不能觸發,優化后觸發條件如下: dydx_take 0.0002apex_make 0.0005?float(b_first_price_apex)-float(s_first_price_dydx) > float(b_first_price_apex)*apex_makefloat…

華為數通---配置Smart Link主備備份示例

定義 Smart Link,又叫做備份鏈路。一個Smart Link由兩個接口組成,其中一個接口作為另一個的備份。Smart Link常用于雙上行組網,提供可靠高效的備份和快速的切換機制。 目的 下游設備連接到上游設備,當使用單上行方式時&…

Microsoft 365 Copilot正式上線,如何穩定訪問體驗?

如果將微軟對人工智能的投資看成一場豪賭,Microsoft Copilot無疑是現階段最受矚目的賭注。2023年9月正式發布的Microsoft Copilot是一種基于大型語言模型(LLM)和微軟圖形(Microsoft Graph)的數據和人工智能&#xff08…

貝銳花生殼3大安全能力,保障網絡服務安全遠程連接

在沒有公網IP的情況下,使用內網穿透工具,將本地局域網服務映射至外網,雖然高效快捷,但信息安全也是不可忽略的方面。 對此,貝銳花生殼提供了多維度的安全防護能力,滿足不同場景下用戶安全遠程訪問內網服務的…

svn log | less

svn log | less 是一個命令行指令,用于查看 Subversion (SVN) 倉庫的提交日志,并通過分頁方式進行瀏覽。 具體而言,svn log 命令用于獲取 SVN 倉庫的提交歷史記錄。而 less 命令則是一個分頁器,它可以將輸出內容逐頁顯示在終端窗…

阿里巴巴通義實驗室周暢:讓大模型率先在PC上“跑起來”

12月7日,以“AI新生態 智啟新元年”為主題的首屆AI PC產業創新論壇在北京聯想集團總部舉辦。阿里巴巴-通義實驗室、通義千問大模型負責人周暢受邀出席分享關于端側大模型的技術進展,以及終端設備與AI結合的發展前景。 周暢表示,大模型技術的…

【Python百寶箱】Python與移動應用開發:框架對比與交互全指南

一站式指南:如何用Python打造移動應用的完美體驗 前言 隨著移動應用市場的不斷擴大,開發者們尋求更便捷、靈活的方式來構建跨平臺的應用。本文將帶領讀者深入探討Python在移動應用開發中的應用,聚焦于幾個主要框架,并詳細介紹它…

Python django-xadmin:構建強大的 Django 后臺管理系統

概要 Django作為一款強大的Web框架,其后臺管理系統提供了便捷的數據管理和操作方式。而 django-xadmin 則為Django的后臺管理系統提供了更加強大的功能和靈活的定制選項。在本文中,我們將深入研究如何使用django-xadmin,并通過詳細的示例代碼…

企業博客SEO:優化SOP,助您提升搜索引擎可見性

企業博客是互聯網時代企業與用戶溝通的重要渠道之一,引流成本也比較低。然而,依然有企業會處在3種狀態: 1. 有博客,但內容更新不積極或擱置 2. 有博客,但內容散亂 3. 根本就沒有博客 如果是這幾種狀態,…

Java網絡編程-深入理解BIO、NIO

深入理解BIO與NIO BIO BIO 為 Blocked-IO(阻塞 IO),在 JDK1.4 之前建立網絡連接時,只能使用 BIO 使用 BIO 時,服務端會對客戶端的每個請求都建立一個線程進行處理,客戶端向服務端發送請求后,…

3接上篇 我的自定義GPTs的改進優化 與物理世界連接成功 GPTs的創建與使用定義和執行特定任務的功能模塊 通過API與外部系統或服務的交互

https://blog.csdn.net/chenhao0568/article/details/134875067?spm1001.2014.3001.5502 從服務器日志里看到請求多了一個“location” 23.102.140.123 - - [08/Dec/2023:14:02:20 0800] "GET /getWeather.php?location&locationNewYork HTTP/1.1" 200 337 &…

2024年甘肅省職業院校技能大賽信息安全管理與評估賽項一階段樣題一

2024年甘肅省職業院校技能大賽高職學生組電子與信息大類信息安全管理與評估賽項樣題一 競賽需要完成三個階段的任務,分別完成三個模塊,總分共計 1000分。三個模塊內容和分值分別是: 1.第一階段:模塊一 網絡平臺搭建與設備安全防…

【K8S】微服務不香了?單體化改造悄然興起!!

微服務一直以來是服務治理的基本盤之一,落地到云原生上,往往是每個 K8s pods 部署一個服務,獨立迭代、獨立運維。 但是在快速部署的時候,有時候,我們可能需要一些宏服務的優勢。有沒有一種方法,能夠 “既要又要” 呢?本文基于 tRPC-Go 服務,提出并最終實踐了一種經驗證…

從互聯網到云計算再到 AI 原生,百度智能云數據庫的演進

1 數據庫行業發展概述 如果說今年科技圈什么最火,我估計大家會毫不猶豫選擇 ChatGPT。ChatGPT 是 2022 年 11 月 30 日由 OpenAI 發布的聊天應用。它創造了有史以來用戶增長最快的紀錄:自 11 月 30 日發布起,5 天就擁有了 100 萬活躍用戶&am…

靜態HTTP和動態HTTP的混合使用:最佳實踐

在當今的互聯網環境中,靜態HTTP和動態HTTP各有其優勢和局限。靜態HTTP具有速度快、安全性高和易于維護的特點,而動態HTTP則能夠實現動態交互和處理大量動態數據。為了充分利用兩者的優勢,越來越多的網站開始采用靜態HTTP和動態HTTP混合使用的…

計算機的存儲規則

計算機存儲 計算機采用二進制來存儲數據和程序 原因主要有: (1) 物理上容易實現 (2) 運算規則非常簡單 (3) 可靠性強 (4) 易于實現邏輯運算和邏輯判斷 計算機中存儲器的分類及特點 根據存儲器在計算機系統中所起的作用 分為內存儲器和外存儲器 (1) 內存用來…

大數據畢業設計之前端02:架構布局和aside的設計

前言 上一篇主要講了我學習前端的一個經歷,以及為什么選擇BuildAdmin作為深入前端學習的原因.同事也大致聊了一下學習前端需要使用哪些技術棧。 本篇文章來拆解一下BuildAdmin的前端代碼結構,和布局實現的細節。 前端代碼結構 必須先了解項目的結構&…

leetcode每日一題37

92.反轉鏈表II 這道題需要1.找到位置left 2.在位置left開始,一前一后兩個指針反轉鏈表,代碼同206.反轉鏈表,直到后一個指針指向right 3.把反轉后的頭節點鏈接到left-1后面,把反轉后的鏈表尾節點指向right1位置的節點 因為可能會反…

數據結構——二叉樹的鏈式結構

個人主頁:日刷百題 系列專欄:〖C語言小游戲〗〖Linux〗〖數據結構〗 〖C語言〗 🌎歡迎各位→點贊👍收藏??留言📝 ? 一、二叉樹的創建 這里我們使用先序遍歷的思想來創建二叉樹,這里的內容對于剛接觸二…