日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

968. 监控二叉树(递归+贪心)

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 968. 监控二叉树(递归+贪心) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個二叉樹,我們在樹的節點上安裝攝像頭。
節點上的每個攝影頭都可以監視其父對象、自身及其直接子對象。
計算監控樹的所有節點所需的最小攝像頭數量。

示例 1:

輸入:[0,0,null,0,0]
輸出:1
解釋:如圖所示,一臺攝像頭足以監控所有節點。
示例 2:

輸入:[0,0,null,0,null,0,null,null,0]
輸出:2
解釋:需要至少兩個攝像頭來監視樹的所有節點。 上圖顯示了攝像頭放置的有效位置之一。

提示:

給定樹的節點數的范圍是 [1, 1000]。
每個節點的值都是 0。

————————————————————————————————————————————————————————
題目要求最小攝像頭數目,如果從頭節點開始看,就只能省一個攝像頭,而如果從葉子節點開始看,就可以省下指數級的攝像頭數目;
所以可以確定遍歷順序是從葉子節點開始向上遍歷,讓葉子節點的父節點裝攝像頭即可;
很容易想到是后序遍歷,根據貪心思想有:
局部最優:葉子節點的父節點安攝像頭,所用攝像頭最少;
全局最優:整體二叉樹所用攝像頭最少;

然后該考慮裝攝像頭的情況了,這里需要考慮每個節點可能的狀態,有三種:
1,有攝像頭覆蓋
2,沒有攝像頭覆蓋
3,有攝像頭

注意:這里“沒有攝像頭”狀態就是1和2了;

所以可以用三個數字表示節點狀態:
0:該節點無覆蓋
1:該節點有攝像頭
2:該節點有覆蓋

這里還需要考慮一點:空節點怎么辦?(終止條件)
空節點如果是沒有覆蓋狀態,那么葉節點就得有攝像頭,所以我們需要將空節點賦為有覆蓋的狀態;

整個遞歸函數整體框架有了,接下來是每一層的邏輯情況,有四種:
1,左孩子和右孩子都有覆蓋(2),那么父節點就需要是無覆蓋狀態(0)
2,左孩子和右孩子至少有一個沒有覆蓋,那么父節點就需要是有攝像頭狀態(1)
3,左孩子和右孩子至少有一個有攝像頭,那么父節點就需要是有覆蓋的狀態(2)
4,頭節點沒有覆蓋,那么需要單獨給它加一個攝像頭;

分析完了,代碼如下:

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:int ans = 0;//0:無覆蓋 1:有攝像頭 2:有覆蓋int traverse(TreeNode* root) {if (!root) return 2;int left = traverse(root -> left);int right = traverse(root -> right);//情況二if (!left || !right) {ans++;return 1;}//情況三if (left == 1 || right == 1) {return 2;}//情況一if (left == 2 && right == 2) {return 0;}return -1;}int minCameraCover(TreeNode* root) {//情況四if (!traverse(root)) {ans++;}return ans;} };

總結

以上是生活随笔為你收集整理的968. 监控二叉树(递归+贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美色拍 | 在线97视频| 欧美综合一区二区三区 | 中文字幕日韩经典 | 99视频久久| 日日碰狠狠添天天爽 | 色欧美片视频在线观看 | 青青色在线视频 | 男人插入女人阴道视频 | 自拍偷自拍亚洲精品播放 | 午夜小视频在线播放 | 日韩色图一区 | 日本欧美视频 | 国产亚洲综合在线 | 蜜臀久久99精品久久久久久 | 国产日韩精品视频 | 亚洲不卡av一区二区 | 西比尔在线观看完整视频高清 | jizz一区二区三区 | 国产成人精品视频ⅴa片软件竹菊 | 国产黄色大片 | 真人毛片视频 | 欧美黑人猛交 | 色女仆影院| 91视频 - 8mav| 岛国片在线播放 | 中国一级大黄大黄大色毛片 | 国产高清视频在线观看 | 中文字幕亚洲一区二区三区五十路 | 制服丝袜天堂网 | www夜片内射视频日韩精品成人 | 欧美怡红院一区二区三区 | 亚洲色图视频在线观看 | 狠狠躁日日躁夜夜躁2022麻豆 | 久久99久久99精品免视看婷婷 | 久草婷婷 | 久久天 | 欧美黄色录像 | 伊人色在线| 日韩一区二区影院 | 亚洲国产日韩一区无码精品久久久 | 在线观看免费视频一区二区 | 五十路六十路七十路熟婆 | 丁香九月婷婷 | 国产chinese | 黄网站在线观看视频 | 超碰97观看 | 一极黄色大片 | 黄色在线观看视频网站 | 亚洲资源网 | 99爱视频在线 | 国产成人精品亚洲日本在线观看 | 亚洲插插| 中文字幕日本在线观看 | 两口子交换真实刺激高潮 | 中文字字幕在线中文 | 亚洲素人 | 亚洲区小说区图片区 | 天天综合91 | 日本精品一区二区 | 91爽爽| 国产精品欧美综合亚洲 | 成人小视频在线观看 | 国产视频首页 | 国产极品美女高潮无套在线观看 | 久久综合成人 | 亚洲精品久久久久久久久久 | 成人免费一级视频 | 亚洲国产精品午夜久久久 | 天天综合网天天综合色 | 久月婷婷 | 无码精品人妻一二三区红粉影视 | 精品香蕉一区二区三区 | 18禁裸乳无遮挡啪啪无码免费 | 91偷拍视频 | 完全免费av | 国产午夜福利100集发布 | 久久精品国产一区 | 香港台湾日本三级大全 | 国产裸体网站 | 女的高潮流时喷水图片大全 | 国产原创av在线 | 三级男人添奶爽爽爽视频 | 一边摸一边抽搐一进一出视频 | 少妇人妻一区 | 色欲狠狠躁天天躁无码中文字幕 | 国产精品精品 | 97操| 无遮挡在线观看 | 中文精品久久久久人妻不卡 | 中文字幕视频免费 | 亚洲色偷偷综合亚洲av伊人 | 少妇人禽zoz0伦视频 | 亚洲AV无码国产成人久久 | 久久亚洲精华国产精华液 | 另类激情| 2020国产在线 | 亚洲大胆 | 国产一区91精品张津瑜 |