贪心算法_监控二叉树

package 数据结构和算法;


//输入:[0,0,null,0,null,0,null,null,0]
//输出:2
//解释:需要至少两个摄像头来监视树的所有节点。

public class t24_贪心算法_监控二叉树 { public static void main(String[] args) { // TODO 自动生成的方法存根 TreeNode a= new TreeNode(0); TreeNode b= new TreeNode(0); TreeNode c= new TreeNode(0); TreeNode d= new TreeNode(0); TreeNode e= new TreeNode(0); TreeNode f= new TreeNode(0); TreeNode g= new TreeNode(0); TreeNode h= new TreeNode(0); TreeNode i= new TreeNode(0); a.setLeft(b); // a.setRight(c); b.setLeft(d); // b.setRight(e); d.setLeft(f); // d.setRight(g); // f.setLeft(h); f.setRight(i); int res2 = minCameraCover(a); System.out.print(res2); } static int res=0; public static int minCameraCover(TreeNode root) { if(minCame(root) ==0) { res++; } return res; } private static int minCame(TreeNode root) { // TODO 自动生成的方法存根 if(root ==null) { return 2; } int left = minCame(root.left); int right = minCame(root.right); if(left==2 && right==2) { return 0; }else if(left ==0 || right==0) { res++; return 1; }else { return 2; } } }

 

posted @ 2022-12-10 17:26  依云科技  阅读(23)  评论(0)    收藏  举报