美文网首页快乐写代码
T515、每个数中找最大值

T515、每个数中找最大值

作者: 上行彩虹人 | 来源:发表于2020-07-01 22:57 被阅读0次

您需要在二叉树的每一行中找到最大的值。

示例:

输入:

      1
     / \
    3   2
   / \   \  
  5   3   9 

输出: [1, 3, 9]
通过次数13,314提交次数21,928

遇到树相关的题第一反应到递归求解,这个题和树的层次遍历非常相似。使用一个队列记录下一层节点的顺序,然后依次找到每层的最大值即可。遇到这种题需要第一时间在脑袋里反应出解题思路,然后按照模型写代码即可。

    public List<Integer> largestValues(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        if(root == null)
            return res;
        Deque<TreeNode> queue = new ArrayDeque<>();
        queue.offer(root);
        while(!queue.isEmpty()){
            int size = queue.size();
            int max = Integer.MIN_VALUE;
            for(int i = 0; i < size; i++){
                TreeNode t = queue.poll();
                max = Math.max(max,t.val);
                if(t.left != null)
                    queue.offer(t.left);
                if(t.right != null)
                    queue.offer(t.right);
            }
            res.add(max);
        }
        return res;
    }

相关文章

  • T515、每个数中找最大值

    您需要在二叉树的每一行中找到最大的值。 示例: 输入: 输出: [1, 3, 9]通过次数13,314提交次数21...

  • java如何实现输出三个数中的最大值

    java如何实现输出三个数中的最大值 目的: 从控制台接收三个整数,然后找出三个数中的最大值。 视频教程推荐:ja...

  • JavaScript-Day04

    function练习 // - 求2个数中的最大值 // var result=isPrimeNumb...

  • 排序算法

    1 冒泡排序 如果是对n个数升序排序,冒泡排序每趟排序把一个最大值浮到最后。 第一趟,针对n个数,比较第1个数和第...

  • JS常见算法

    1、JavaScript中两个数组的拼接2、使用apply()找出数组中最大值

  • 第八日 数字序列中的最大乘积

    下面有1000个数字,每“四个相邻数字的乘积”的最大值是9 × 9 × 8 × 9 = 5832. 7316717...

  • 并查集

    统计集合个数 统计集合最大值 单独设置一个数组记录

  • 向上取数

    取两个数组中的最大值,然后将向上取整,如14000,变成20000.

  • 线性表最值问题

    找最小值 找最大值 顺序表求最大值 顺序表求最小值 带头结点单链表求最大值 带头结点单链表求最小值 q是 最大值/...

  • 找出数组中的最大值最小值,最小值必须在最大值前面

    给一个数组,找出数组中的最大值最小值,最小值必须在最大值前面,也就是说最小值的下标必须比最大值的下标小。 要求时间...

网友评论

    本文标题:T515、每个数中找最大值

    本文链接:https://www.haomeiwen.com/subject/ceykqktx.html