Technology sharing

Java algorithm day12

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Java algorithm day12

  • Recta sententia CXCIX binarii ligno
  • Mediocris de gradu arbores binarii DCXXXVII
  • 515 Reperio maximum valorem in unaquaque arbore row
  • 429 Level-order traversal of N-ary tree
  • CXVI monstratorem nodi nodi proximum imple

CXCIX recta sententia de ligno binarii

Haec quaestio de iacu sequentiae traversalis adhuc est, sed processus paulo diversus est.
Quaeso addere imaginem descriptionem
Initium meum cogitans de hac quaestione erravisse quod initio cogitabam de ea quae in hac imagine nititur. Cogitavi tantum opus esse ut extremam nodi cuiusque tabulatorum extendas et hoc ipsum esse putavi. Utcunque est, inique. Si hanc notionem sequimini, si nulla nodi 4 est in figura superiore, nodi 5 adici non possunt ad eventum omnino positum. Haec igitur opinio non expedit.

Recta opinio:
Ut ne supra situm, laevum etiam dilatetur. Recta igitur tractatio est. Quisque accumsan quam quisque nodi dilatari debet, sed solum ultimum elementum accumsan quisque eget quam ut ex posuere.
Quomodo scribere elementum ultimum addendum est ex statuto?
Singulae tabulae magnitudines adhibet, ita attendere ad computationem in pro ansa, et proventum novissimum collige.

class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        Deque<TreeNode> que = new ArrayDeque<>();
        if(root==null){
            return result;
        }
        
        que.offerLast(root);
        while(!que.isEmpty()){
            int size = que.size();
            for(int i = 0;i<size;i++){
                TreeNode temp = que.pollFirst();
                if(i==size-1){
                    result.add(temp.val);
                }
                
                if(temp.left!=null){
                    que.offerLast(temp.left);
                }
                if(temp.right!=null){
                    que.offerLast(temp.right);
                }
                


            }
        }

        return result;

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

Mediocris de gradu arbores binarii DCXXXVII

Quisque accumsan pretium justo in consequat.Quaestio tabula adhuc est

class Solution {
    public List<Double> averageOfLevels(TreeNode root) {
        List<Double> result = new ArrayList<>();
        Deque<TreeNode> que = new ArrayDeque<>();
        if(root==null){
            return result;
        }

        que.offerLast(root);
        while(!que.isEmpty()){
            int size = que.size();
            double sum = 0;
            double avg = 0;
            for(int i = 0;i<size;i++){
                TreeNode temp = que.pollFirst();
                sum += temp.val;
                if(temp.left!=null){
                    que.offerLast(temp.left);
                }
                if(temp.right!=null){
                    que.offerLast(temp.right);
                }
                
            }
            avg = sum/size;
            result.add(avg);
        }

        return result;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

515 Reperio maximum valorem in unaquaque arbore row

Est etiam quaestio templates, modo maximum valorem ponere cum in singulis ordinibus disponendis.
Restat ut meminerim Integer.MIN_VALUE minimi pretii.

class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        Deque<TreeNode> que = new ArrayDeque<>();
        if(root==null){
            return result;
        }

        que.offerLast(root);
        while(!que.isEmpty()){
            int size = que.size();
            int max = Integer.MIN_VALUE;
            for(int i = 0;i<size;i++){
                TreeNode temp = que.pollFirst();
                if(temp.val > max){
                    max = temp.val;
                }
                if(temp.left!=null){
                    que.offerLast(temp.left);
                }
                if(temp.right!=null){
                    que.offerLast(temp.right);
                }
            }
            result.add(max);
        }

        return result;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

429 Level-order traversal of N-ary tree

Modo expansionis methodum mutavi. Instead of expandentes laevum et dextrum subtrees, protinus addidi album ACERVUM.
Est modus in ea discenda.
ArrayDeque instrumentum Deque, et Deque Queue interfaciem possidet, et Queue collectionem interfaciem accipit, sic addAll methodum habet. Quoad parametros addendi, genus parametri genus est Collectionis genus, quod significat posse aliquid recipere quod Collectioni instrumenti instrumenti ad effectum deducatur. Hoc includit omnes unius columnae structuram cogitare potes.

/*
// Definition for a Node.
class Node {
    public int val;
    public List<Node> children;

    public Node() {}

    public Node(int _val) {
        val = _val;
    }

    public Node(int _val, List<Node> _children) {
        val = _val;
        children = _children;
    }
};
*/

class Solution {
    public List<List<Integer>> levelOrder(Node root) {
        List<List<Integer>> result = new ArrayList<>();
        Deque<Node> que = new ArrayDeque<>();
        if(root == null){
            return result;
        }

        que.offerLast(root);
        while(!que.isEmpty()){
            int size = que.size();
            List<Integer> curList = new ArrayList<>();
            while(size>0){
                Node temp = que.pollFirst();
                curList.add(temp.val);
                //就是扩展方式变了,变为直接把子节点全部加入到队列中,这也等价于将里面的每个元素从尾部依次加入队列当中。
                que.addAll(temp.children);
                size--;
            }
            result.add(curList);
        }

        return result;
        
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

116. nodi dextri proximum cujusvis nodi regulam implet

Idea: Differentia a sequential-traversalis iacuit est quod mutationes in singulis iacuit dispensando sunt. Cum ad singulas tabulas pervenerit, primus nodi seorsim sumendus est. Scilicet, primo post emissionem dilatetur, quia adhuc altera iacuit. Reliquorum nodis iacuit percurritur. Traversalis maxime perficit magnitudinem currentis que. Cum prima nodi huius tabulae exempta est, incipit ab =1 in traversal. Quod in processu uniuscuiusque nodi fieri debet, monstrationem mitigabit. Hoc est, proximus nodi primi nodi demonstrat secundi nodi papaver ab acervo postea, et postea cur movetur ad proximum. In hoc processu memini expandere nodos dextra et dextra puer.

/*
// Definition for a Node.
class Node {
    public int val;
    public Node left;
    public Node right;
    public Node next;

    public Node() {}
    
    public Node(int _val) {
        val = _val;
    }

    public Node(int _val, Node _left, Node _right, Node _next) {
        val = _val;
        left = _left;
        right = _right;
        next = _next;
    }
};
*/

class Solution {
    public Node connect(Node root) {
        Deque<Node> que = new ArrayDeque<>();
        if(root==null){
            return root;
        }

        que.offerLast(root);
        while(!que.isEmpty()){
            //每层先取出第一个节点
            int size = que.size();
            Node cur = que.pollFirst();
            //扩展它
            if(cur.left!=null){
                que.offerLast(cur.left);
            }
            if(cur.right!=null){
                que.offerLast(cur.right);
            }
            for(int i = 1;i<size;i++){
                Node next = que.pollFirst();
                if(next.left!=null){
                    que.offerLast(next.left);
                }
                if(next.right!=null){
                    que.offerLast(next.right);
                }
                cur.next = next;
                cur = next;
            }
            

        }
        return root;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59