欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

劍指Offer之Java算法習(xí)題精講N叉樹的遍歷及數(shù)組與字符串

 更新時間:2022年03月22日 17:06:38   作者:明天一定.  
跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化

題目一

N叉樹題——前序遍歷

根據(jù)給定的N叉樹根節(jié)點,返回它節(jié)點值的前序遍歷

具體題目如下

解法

/*
// 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 {
    ArrayList<Integer> list = new ArrayList<Integer>();
    public List<Integer> preorder(Node root) {
        if (root == null) return list;
        list.add(root.val);
        for(int i=0;i<root.children.size();i++){
            preorder(root.children.get(i));
        }
        return list;
    }
}

題目二

N叉樹題——后序遍歷

根據(jù)給定的N叉樹根節(jié)點,返回它節(jié)點值的后序遍歷

具體題目如下

 解法

/*
// 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 {
    ArrayList<Integer> list = new ArrayList<Integer>();
    public List<Integer> postorder(Node root) {
        if(root==null) return list;
        for(int i = 0;i<root.children.size();i++){
            postorder(root.children.get(i));
        }
        list.add(root.val);
        return list;
    }
}

題目三

二叉樹題——創(chuàng)建字符串

根據(jù)給定的二叉樹,采用前序遍歷的方式并按指定條件將它轉(zhuǎn)換為字符串

具體題目如下

解法

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public String tree2str(TreeNode root) {
        // root為空返回""
        if(root==null){
            return "";
        }
        // root左右為空
        if(root.left==null&&root.right==null){
            return root.val+"";
        }
        // root右為空
        if(root.right==null){
            return root.val+"("+tree2str(root.left)+")";
        }
        // root左右不空或是左不為空
        return root.val+"("+tree2str(root.left)+")"+"("+tree2str(root.right)+")";
    }
}

題目四

數(shù)組題——數(shù)組中三個數(shù)最大乘積

根據(jù)給定的整型數(shù)組,返回其中三個數(shù)組成的最大乘積

具體題目如下

解法

class Solution {
    public int maximumProduct(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length;
        // 拿到最大三個數(shù),或者最小兩個數(shù)和最大一個數(shù)
        int ans = Math.max(nums[n-1]*nums[n-2]*nums[n-3],nums[n-1]*nums[0]*nums[1]);
        return ans;
    }
}
 
// 拿到最大三個數(shù),或者最小兩個數(shù)和最大一個數(shù)
class Solution {
    public int maximumProduct(int[] nums) {
        // 最小的和第二小的
        int min1 = Integer.MAX_VALUE, min2 = Integer.MAX_VALUE;
        // 最大的、第二大的和第三大的
        int max1 = Integer.MIN_VALUE, max2 = Integer.MIN_VALUE, max3 = Integer.MIN_VALUE;
        for(int n:nums){
            if(n<min1){
                min2 = min1;
                min1 = n;
            }else if(n<min2){
                min2 = n;
            }
            if(n>max1){
                max3 = max2;
                max2 = max1;
                max1 = n;
            }else if(n>max2){
                max3 = max2;
                max2 = n;
            }else if(n>max3){
                max3 = n;
            }
        }
        return Math.max(min1*min2*max1,max1*max2*max3);
    }
}

到此這篇關(guān)于劍指Offer之Java算法習(xí)題精講N叉樹的遍歷及數(shù)組與字符串的文章就介紹到這了,更多相關(guān)Java N叉樹的遍歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java并發(fā) 結(jié)合源碼分析AQS原理

    Java并發(fā) 結(jié)合源碼分析AQS原理

    這篇文章主要介紹了Java并發(fā) 結(jié)合源碼分析AQS原理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Java遞歸查找層級文件夾下特定內(nèi)容的文件的方法

    Java遞歸查找層級文件夾下特定內(nèi)容的文件的方法

    這篇文章主要介紹了Java遞歸查找層級文件夾下特定內(nèi)容的文件,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Java定義泛型接口和類的方法實例分析

    Java定義泛型接口和類的方法實例分析

    這篇文章主要介紹了Java定義泛型接口和類的方法,結(jié)合實例形式分析了泛型相關(guān)概念、原理及泛型接口與類的定義實現(xiàn)方法,需要的朋友可以參考下
    2019-08-08
  • SpringBoot注冊Servlet的三種方法詳解

    SpringBoot注冊Servlet的三種方法詳解

    這篇文章主要介紹了SpringBoot注冊Servlet的三種方法詳解,教你如何Spring Boot 注冊 Servlet、Filter、Listener,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • SpringCloud整合Netty集群實現(xiàn)WebSocket的示例代碼

    SpringCloud整合Netty集群實現(xiàn)WebSocket的示例代碼

    文章主要介紹了SpringCloud整合Netty集群實現(xiàn)WebSocket的相關(guān)內(nèi)容,包括服務(wù)注冊和發(fā)現(xiàn)中心的配置,如使用Nacos、CommandLineRunner啟動Netty服務(wù)等,還介紹了通過Redis實現(xiàn)消息發(fā)布訂閱的機制,需要的朋友可以參考下
    2024-11-11
  • Spring注解@DependsOn解析

    Spring注解@DependsOn解析

    今天要分享得是Spring的@DependsOn注解,對于@DependsOn,我們從它的名稱里面就能看出意思是“依賴于”,那么在Spring中,它的作用就是解決Bean的創(chuàng)建依賴,感興趣的小伙伴快來閱讀吧
    2023-04-04
  • Mybatis-plus和Mybatis出現(xiàn)版本不兼容的問題解決

    Mybatis-plus和Mybatis出現(xiàn)版本不兼容的問題解決

    MyBatis-Plus?與?MyBatis?之間的兼容性問題通常是由于版本不匹配引起的,本文主要介紹了Mybatis-plus和Mybatis出現(xiàn)版本不兼容的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • spring?controller層引用service報空指針異常nullpointExceptio問題

    spring?controller層引用service報空指針異常nullpointExceptio問題

    這篇文章主要介紹了spring?controller層引用service報空指針異常nullpointExceptio問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java結(jié)合Vue項目打包并進行服務(wù)器部署

    Java結(jié)合Vue項目打包并進行服務(wù)器部署

    本文主要介紹了Java結(jié)合Vue項目打包并進行服務(wù)器部署,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • springboot項目中idea的pom.xml文件的引用標(biāo)簽全部爆紅問題解決

    springboot項目中idea的pom.xml文件的引用標(biāo)簽全部爆紅問題解決

    這篇文章主要介紹了springboot項目中idea的pom.xml文件的引用標(biāo)簽全部爆紅問題解決,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友參考下吧
    2023-12-12

最新評論