leetcode968. 监控二叉树
生活随笔
收集整理的這篇文章主要介紹了
leetcode968. 监控二叉树
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:論語
這個有意思,我們可以從中得出的是,一個人過錯 其實是潛意思決定的 行為見品質 但知錯更改也是nice的
二:題目
三:上碼
/*** 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 cnt = 0;int tralTree(TreeNode* root) {if(root == nullptr) return 2;//遍歷到葉節點的話有覆蓋int left = tralTree(root->left);int right = tralTree(root->right);//情況一 左右結點都被覆蓋了 那么其就是未被覆蓋if(left == 2 && right == 2) return 0;//情況二://left == 0 && right == 0 左右結點無覆蓋//left == 1 && right == 0 左節點有攝像頭,右結點無覆蓋//left == 0 && right == 1 左節點無覆蓋,右結點有攝像頭//left == 0 && right == 2 左節點無覆蓋,右結點有覆蓋//left == 2 && right == 0 左節點有覆蓋,右結點無覆蓋if(left == 0 || right == 0) {cnt++;return 1;}//情況三://left == 1 && right == 2左節點有攝像頭,右節點有覆蓋//left == 2 && right == 1左節點有覆蓋,右節點有攝像頭//left == 1 && right == 1 都有攝像頭的話,那我們就可以返回被覆蓋if(left == 1 || right == 1) return 2;return -1;}int minCameraCover(TreeNode* root) {/**思路:1.0表示未覆蓋,1表示有攝像頭,2表示覆蓋了2.這里我們采用的遍歷方法是后序遍歷,因為我們是從低往上的,我們不考慮葉節點,因為葉節點沒有子結點所以我們都是再葉節點的父節點上安裝攝像頭*/int num = tralTree(root);if(num == 0){cnt++;}return cnt;} };家人們 家人們 貪心稀里糊涂的結束了 引用卡哥的話,貪心就是 你不知道咋回事就用上了 嘿嘿 反正是不知道咋回事就結束貪心了 我要擁抱動態規劃了
加油 晚安
菜雞杰要天天向上 !!!!!!!!!!
總結
以上是生活随笔為你收集整理的leetcode968. 监控二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对标英伟达 H200,英特尔预告 Gau
- 下一篇: session.setAttribute