java训练day 17 ①杨辉三角(二维数组)②二叉树的镜像(数据结构+递归)

2023-05-16

目录

①杨辉三角

②二叉树的镜像


①杨辉三角

 

 

import java.util.*;
public class Main {
    public static void main(String[]args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            //定义一个二维数组来存放杨辉三角
            //将题目中的杨辉三角靠左排列更容易理解
            //1
            //111
            //12321
            //1367631
            int m = 2 * n - 1; //杨辉三角每一行的个数为2n-1
            int[][] arr = new int[n][m];
            //初始化二维数组
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < m; j++) {
                    arr[i][j] = 0; //将二维数组初始化为0
                }
            }
            //1行1列的值先进行初始化为1
            arr[0][0] = 1;
            //开始构建数组值
            for (int i = 1; i < n; i++) {
                //第一行已经构造完毕,在数组中是arr【0】
                //因而循环直接从1开始,构建到下标为n-1的数组则
                //构建完成
                //由于每一行第一个和最后一个的均为1
                arr[i][0] = arr[i][2 * i] = 1;
                for (int j = 1; j < 2 * i; j++) {
               //当j==1,则j-2下标越界,arr[i-1][j-2]视为0;
               //当j!=1时,则对应的值为上一行三数之和相加
                    if (j == 1) {
                        arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
                    } else {
                        arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1] + arr[i - 1][j - 2];
                    }
                }
            }//遍历偶数
            int k = 0;
            for (; k < m; k++) {
                if (arr[n - 1][k] % 2 == 0) {
                    System.out.println(k + 1);
                    break;
                }
            }
            if (k == m) {
                System.out.println(-1);
            }
        }
    }
}

②二叉树的镜像

 

import java.util.*;
/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pRoot TreeNode类 
     * @return TreeNode类
     */
    public TreeNode Mirror (TreeNode pRoot) {
        //当树为空树时,直接返回null即可。空树的镜像还是null
        if(pRoot==null){
            return null;
        }
        //当跟的左树和右树均为空树时,则说明只有一个根节点,则不用取镜像了
        //直接返回根节点即可
        //这也作为了下面递归的中止条件,当递归左右树时满足if条件则将当前根节点返回
        if(pRoot.left==null&&pRoot.right==null){
            return pRoot;
        }
        //把根节点的左树变为右树,右树变为左数
        TreeNode temp=pRoot.left;
        pRoot.left=pRoot.right;
        pRoot.right=temp;
        //这时pRoot.left以及下面的左右树子节点已到右边
        //递归遍历左树和右树调换位置
        if(pRoot.left!=null){
            Mirror(pRoot.left);
        }if(pRoot.right!=null){
            Mirror(pRoot.right);
        }
        //全部执行结束后则会返回最初那层,返回根节点
        return pRoot;
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java训练day 17 ①杨辉三角(二维数组)②二叉树的镜像(数据结构+递归) 的相关文章

  • 新手小白做短视频自媒体,入门级教程分享,抓紧收藏

    很多新手做短视频自媒体 xff0c 坚持了一段时间后因为没有得到自己想要的收益 收益很低就放弃了 做任何事情坚持都是非常重要的 xff0c 做短视频也是 xff0c 前期可能要花费一段时间积累 xff0c 后期是爆发式的增长 xff0c 很
  • 新手做自媒体短视频,不会剪辑?大周教你10个小技巧

    有不少小伙伴给大周发信息说自己也想做自媒体短视频赚钱 xff0c 但自己不会剪辑怎么办 xff1f 不用担心 xff0c 方法总比困难多 xff0c 今天大周分享一下我整理了很久的剪辑小技巧给你们 xff0c 建议新手们收藏或保存下来留着慢
  • 0基础适合新手,5分钟教会你视频剪辑,新手做自媒体短视频必备

    昨天大周发了一个听歌的项目火了后 xff0c 收到很多粉丝给大周留言 xff0c 说自己也想做自媒体 但是他们最大的一个难题就是不知道怎么去剪辑 xff0c 今天就出这一期剪辑的基本教学 xff0c 感兴趣的小伙伴可以先点赞收藏这个内容了
  • 学会后不用担心不会剪辑了,手把手教你视频剪辑,不用真人露脸

    前段时间发布了几期有关剪辑的内容 xff0c 收到不少粉丝小伙伴的留言 xff0c 说自己很想做自媒体 现在遇到的最大的难题就是如何剪辑好视频作品 xff0c 今天就来出这一期的基本教学 xff0c 大周只分享今天这一次 xff0c 如果感
  • 这3个点很重要,做自媒体视频文案怎么写?需要注意哪些细节呢?

    做视频拍摄或剪辑之前写文案 脚本是很多做自媒体人的习惯了 xff0c 但是你有想过这个问题吗 xff1f 你的脚本有没有起到最大作用 xff0c 文案写对了吗 xff1f 有不少人都以为文案只需要把视频中需要的台词写下来就可以了 xff0c
  • 跟我做,快速帮你加入中视频伙伴计划,播放量没达到17000?

    想加入中视频计划获得更高的播放量和收益 xff1f 肯定还在为17000的播放量而发愁吧 xff1f 今天大周就来教你一招快速加入 xff0c 原创不易 xff0c 点个赞支持一下呗 xff01 在干货开始之前大周想问你们一个问题 xff1
  • 这样提升账号权重和活跃度,收益涨了十倍,不怕账号没流量涨粉慢

    播放量低 xff1f 涨粉慢 xff1f 收益只有几分几毛 xff1f 有的时候还往下掉粉 xff1f 其实想要做好自媒体不仅仅是把视频作品创作好 xff0c 更要知道如何去运营好一个自媒体账号 今天大周就来给你们分享一下大周是如何活跃自己
  • 分享3个自动生成文案的工具,月入6000,做自媒体不会写文案?

    做自媒体短视频不会写文案 xff0c 头都大了 xff01 在这个各种辅助工具 泛滥 的自媒体时代 xff0c 你还在自己写文案 xff1f 事实上 xff0c 对于一个刚开始做自媒体的新手小白来说 xff0c 写视频文案是一件比较费力的事
  • 不知道如何做自媒体怎样学习?

    上一期内容大周跟粉丝们分享了如何起步 xff1a 注册账号 账号定位 xff01 这两个步骤是尤为重要的 没有前期的定位 xff0c 后期想要通过账号赚钱是并不容易的 自己不会做内容 xff0c 不知道如何操作应该怎么办呢 xff1f 今天
  • 做自媒体去哪里找视频剪辑素材?

    当我们注册好自媒体账号 有了创作的方向 完成了前期的学习 xff0c 接下来就是实践操作了 前期我们可以从视频的二次剪辑创作开始 xff0c 不需要自己拍摄视频素材 xff0c 创作起来会更快捷一些 那我们要去哪里找素材好呢 xff1f 这
  • oracle创建用户、表空间、授权、建表等一系列操作

    开发过程中自己搭建测试数据库的次数不多 xff0c 但建立新用户建新表会经常碰到 xff0c 整理方便日后开发 xff0c 不需要再为此花费过多时间 1 用scott用户以sysdba的身份登录oracle conn scott span
  • 自媒体视频剪辑有哪些技巧需要注意?

    前几期内容跟粉丝们分享了账号注册 账号定位 素材资源 xff0c 接下来就到了比较关键的内容剪辑部分了 大周这里说的剪辑并不是简单的视频画面拼接 xff0c 如果只是简单的拼凑内容 xff0c 我想你也不会喜欢看吧 xff1f 首先我们要学
  • 利用汇编语言实现1-5的数字阶乘并求和

    开发环境masm 代码如下 xff1a assume cs code ds data data segment dw 1 2 3 4 5 dd 0 data ends code segment start mov ax data mov d
  • 事件监听的理解(ActionListener等)

    Java事件监听机制在GUI应用的比较多 我们会时常对界面进行一系列的操作 如文本框输入 添加删除按钮等等 当进行这些操作时 xff0c 程序就会采取相应措施相应这些事件 一 事件监听有三部分组成 xff1a 事件源 xff0c 事件 xf
  • 【HAL库-STM】智能温控按键小风扇【胎教级教学】

    嗨害嗨 xff01 失踪人口回来了 xff01 吐血五天实现小成品 xff08 能力有限 呃呃呃呃呃 xff09 那么回归正题 xff0c 这次是智能温控小风扇我在这个基础上又加了一个按键控制功能 xff0c 当人在的风扇面前时可以自行控制
  • (STM32笔记5)ws2812驱动开发

    ws2812 需要开发的外设 xff1a ws2812 开发环境 xff1a MDK 开发板 xff1a stm32最小系统板 杜邦线无数 一 原理阐述 xff08 一 xff09 这个ws2812有很多种 xff0c 一个小灯 灯带 xf
  • 【python】天天向上的力量

    题干 xff1a 一年365天 xff0c 以第1天的能力值为基数 xff0c 记为1 0 当好好学习时 xff0c 能力值相比前一天提高N xff1b 当没有学习时 xff0c 由于遗忘等原因能力值相比前一天下降N 每天努力或放任 xff
  • 【IAR】错误:Error while running Linker

    IAR ZStack CC2530单播 错误 xff1a Error e27 Entry 34 GenericApp HandleKeys relay 34 in module EndDevice D Projects CC2530DB C
  • C语言基础一小时复习

    一 system 函数 1 头文件 include lt stdlib gt 2 里面可以写 cmd命令 可以打开外部程序用 或者 二 数据类型 1 基本类型 整型 xff1a int short long long long 字符型 xf
  • 竞赛练习题Ⅰ

    第一题 xff1a 回文数 取自CSDN竞赛第22期第四题 题干 xff1a 给定任意一个数字 m xff0c 然后给出数字 n xff0c 则需在 m 中去掉 n 位数 xff0c 保持各位顺序不变的情况下 xff0c 得到最大数 实例

随机推荐

  • HAL库--定时器--PWM呼吸灯实验和非PWM呼吸灯实验

    1 呼吸灯原理分析 xff1a 模拟人体呼吸 xff0c 吸气和呼气各占1 5S xff0c 人眼的图像滞留时间0 04s 1 24帧画面 xff0c 按最快0 04s算 xff0c 就是40ms 亮0 02S xff0c 灭0 02s x
  • 获取form表单的有name属性的value值

    span class token keyword var span model span class token operator 61 span span class token punctuation span span class t
  • Python+Webdriver实现淘宝、京东等抢单操作

    最近双十一已经到了 xff0c 笔者为了拓展技术水平研究了一下网络爬虫技术 xff0c 其中双十一给人印象最深刻地就是抢单了 xff0c 爬虫学的好 xff0c 监狱进得早 本着学术和技术研究的态度 xff0c 笔者仅使用了普通商品进行测试
  • 记录一下如何使用IDEA(2022.2.4版本)创建一个web项目

    1 xff0c 下载IDEA专业版 具体下载安装请自行搜索教程 在校学生有教育邮箱可以进行认证 xff0c 然后免费使用 xff08 具体做法可以自行搜索 xff09 xff08 好像IDEA社区版不行 xff0c 会在后面有些地方卡住 x
  • 计算机操作系统 | 必学生产者-消费者问题 | 参考自王道考研 | 无知的我学习日记(图文排版无水印)

    为了深入计算机底层 xff0c 我正在基于 王道考研 学习计算机操作系统 笔记特点是 我重新整理了涉及资料的一些语言描述 排版 xff0c 而使用了自己比较容易理解的描述 同样是回答了一些常见关键问题 如果有遇到有任何无法进展问题或者疑惑的
  • 对Ajax的一些理解

    什么是Ajax Ajax 61 Asynchronous JavaScript and XML 异步的 JavaScript 和XML Ajax 不是新的编程语言 xff0c 而是一种使用现有标准的新方法 Ajax是一种用于创建快速动态网页
  • 启动hdfs 三种方法

    启动hdfs 三种方法 star all sh 1 手动启动和停止hdfs节点 启动 在master上 xff1a hadoop daemon sh start namenode 在三台主机 xff1a hadoop daemon sh s
  • 基于Maven的Mybatis开发环境搭建

    1 首先我们需要创建一个基于Maven的java项目 2 在数据库中创建一张表及在idea中创建对应实体类 package com ffyc mybatisdemo model public class Admin private int
  • C++程序员这行能干一辈子吗?

    有人说 xff0c 程序员这一行就是吃青春饭 xff0c 不能干一辈子 xff0c 因为程序员面对的是一份高强度的工作 xff0c 同时面临着技术的快速迭代 xff0c 对于身体素质 学习能力等都有很高的要求 xff0c 所以很多人都面临入
  • 新装的centos7使用ip addr 命令不显示ens33的ip地址

    由于需要 xff0c 又重新装了几台虚拟机 xff0c 都是不同的ip xff0c 新装的虚拟机都不会显示ens33 下面的ip地址 就像这样 xff1a 输入 cd etc sysconfig network scripts 把对应的含有
  • GoLang之ACM控制台输入输出

    文章目录 GoLang之控制台输入输出1 源码1 1Scan1 2Scanf1 3Scanln 2 函数使用2 1scan输入单个参数时 xff0c 遇到回车会停止 多行 2 2scan输入单个参数时 xff0c 遇到空格会停止 多行 2
  • 基于SpringBoot+VUE的服装销售商城管理系统

    项目背景 随着科学技术的飞速发展 xff0c 社会的方方面面 各行各业都在努力与现代的先进技术接轨 xff0c 通过科技手段来提高自身的优势 xff0c 服装销售商城当然也不能排除在外 服装销售商城是以实际运用为开发背景 xff0c 运用软
  • 用Selenium定位充满div class页面元素的方法,id、xpath都没用的抓狂情况下

    以搜狐网首页为例 xff0c 我们要定位 搜狗邮箱 这个链接 xff08 如果是xpath等等各种selenium内置提供的定位方法都没用的情况下 xff09 第一步 xff0c 找到该元素 xff0c 此时显示 lt div class
  • SEC物权链奖金制度分析

    启程SEC物权链是什么 xff1f 靠谱吗 xff1f SEC公链是什么 xff1f 物权链怎么样 xff1f 分析于下 xff1a 一 定位 xff1a 依托原中小企业上市包装辅导策划以及不良资产运作等业务 xff0c 130家实体资产分
  • 基于SSM的个人健康信息管理

    项目背景 随着科学技术的飞速发展 xff0c 通过科技手段提高自身的优势 xff1b 对于个人健康信息管理当然也不能排除在外 xff0c 随着网络技术的不断成熟 xff0c 带动了个人健康信息管理 xff0c 它彻底改变了过去传统的管理方式
  • 基于spring boot的个人博客系统的设计与实现

    末尾获取源码 开发语言 xff1a Java Java开发工具 xff1a JDK1 8 后端框架 xff1a SpringBoot 前端 xff1a Vue 43 HTML 数据库 xff1a MySQL5 7和Navicat管理工具结合
  • day 3

    用栈来做是最简便的 栈 stack 是一种数据结构 xff0c 遵循先进后出的原则 最常用的方法为stack pop弹出最顶部的元素并删除 stack peek弹出最顶部的元素查看 xff0c 但不删除 stack push 添加一个元素
  • java方向笔试强训day6

    分别使用字符串和数组的方式 xff0c 数组更简便一些 import java util Scanner public class test26 将字符串转化为数字 public static int function26 String s
  • equals和==的区别

    equals和 61 61 经常用来去比较两个值或者两个对象 61 61 如果只是用来比较基本数据类型常量 的话 xff0c 那么比较的就是两个常量的值 xff0c 如果用来去比较两个对象引用 xff0c 那么比较的是两个对象的地址 equ
  • java训练day 17 ①杨辉三角(二维数组)②二叉树的镜像(数据结构+递归)

    目录 杨辉三角 二叉树的镜像 杨辉三角 import java util public class Main public static void main String args Scanner scanner 61 new Scanne