草稿:Leetcode 310. Minimum Height Trees
来源:互联网 发布:国内财经媒体排名 知乎 编辑:程序博客网 时间:2024/05/16 09:03
这个思路是先构建一个树,然后不断地移动根节点的子节点到根节点的位置,但这个过程中需要实现的部分感觉很多,写了一半写不下去了,下面是未完成的草稿
import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;public class Solution { public List<Integer> findMinHeightTrees(int n, int[][] edges) { List<Integer> res = new ArrayList<Integer>(); if(n==0||edges.length==0) return res; int pos = edges[0][0]; int[] height = new int[n]; List<Integer> pre = new ArrayList<Integer>(); Queue<List<Integer>> later = new LinkedList<List<Integer>>(); while(pre.size()==n){ for(int i=0;i<edges.length;i++){ int left = edges[i][0]; int right = edges[i][1]; if(!pre.contains(left)&&!pre.contains(right)){ List<Integer> pair = new ArrayList<Integer>(); pair.add(left); pair.add(right); later.offer(pair); }else{ if(pre.contains(left)){ height[left]++; }else{ height[right]++; } } } while(later.size()!=0&&pre.size()<n){ List<Integer> pair = later.poll(); if(!pre.contains(pair.get(0))&&!pre.contains(pair.get(1))){ later.offer(pair); }else{ if(pre.contains(pair.get(0))){ height[pair.get(0)]++; }else{ height[pair.get(1)]++; } } } } List<Integer> left = new ArrayList<Integer>(); for(int i=0;i<n;i++){ if(height[i]==0) left.add(i); } int[] max = new int[n]; for(int i=0;i<n;i++){ max[i] = Integer.MAX_VALUE; } //backtrack to count every height!!!!! for(int i=0;i<n;i++){ if(!left.contains(i)){ for(int j=0;j<edges.length;j++){ } } } findroots(res,n,edges); return res; }private void findroots(List<Integer> res, int n, int[][] edges) {// TODO Auto-generated method stub}}
0 0
- 草稿:Leetcode 310. Minimum Height Trees
- Leetcode 310. Minimum Height Trees
- [leetcode] 310. Minimum Height Trees
- 310. Minimum Height Trees LeetCode
- leetcode 310. Minimum Height Trees
- LeetCode *** 310. Minimum Height Trees
- 【LeetCode】310. Minimum Height Trees
- [leetcode] 310.Minimum Height Trees
- leetcode-310. Minimum Height Trees
- [leetcode] 310. Minimum Height Trees
- 【LeetCode】310. Minimum Height Trees
- LeetCode 310. Minimum Height Trees
- Leetcode 310. Minimum Height Trees
- [LeetCode]310. Minimum Height Trees
- Leetcode: 310.Minimum Height Trees
- 【Leetcode】310. Minimum Height Trees
- LeetCode 310. Minimum Height Trees
- leetcode-310. Minimum Height Trees
- C++版本查找(找X问题)1052
- hihoCoder 1151 骨牌覆盖 递推+矩阵幂
- LightOj 1259 Goldbach`s Conjecture 素数筛法
- 基于原版Hadoop的YDB部署
- 电子通讯录的基本模板
- 草稿:Leetcode 310. Minimum Height Trees
- 算法与数据结构【三】——栈的C语言实现
- Log4j_2_配置参数详解
- Linux添加/删除用户和用户组
- c# winFrom中 dataGridView控件 在列表内直接编辑数据,然后保存到数据库
- 万能头文件#include<bits/stdc++.h>(转)
- 关于数组的问题(连续子数组的最大和、数组中出现次数超过一半的数字、调整数组顺序使奇数位于偶数之前)
- Spring + Springmvc + Mabatis环境搭建
- Glusterfs下读写请求的处理流程