![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
每天靠近一点点
这个作者很懒,什么都没留下…
展开
-
【力扣】104. 二叉树的最大深度
一、题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。来源:力扣(LeetCode)链接:https://leetcode-cn...原创 2020-03-31 21:21:13 · 171 阅读 · 0 评论 -
【牛客网】木棒拼图
一、题目描述:有一个由很多木棒构成的集合,每个木棒有对应的长度,请问能否用集合中的这些木棒以某个顺序首尾相连构成一个面积大于 0 的简单多边形且所有木棒都要用上,简单多边形即不会自交的多边形。初始集合是空的,有两种操作,要么给集合添加一个长度为 L 的木棒,要么删去集合中已经有的某个木棒。每次操作结束后你都需要告知是否能用集合中的这些木棒构成一个简单多边形。输入描述:每组测试用例仅包含一组数据,每组数据第一行为一个正整数 n 表示操作的数量(1 ≤ n ≤ 50000) ,接下来有n行,每行第一个整原创 2020-07-14 12:05:10 · 432 阅读 · 0 评论 -
【牛客网】跟奥巴马一起编程(15)
一、题目描述:美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入描述:输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。输出描述:输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五原创 2020-06-17 23:07:28 · 805 阅读 · 0 评论 -
【牛客网】超长正整数相加
一、题目描述:请设计一个算法完成两个超长正整数的加法。接口说明:public String AddLongInteger(String addend, String augend){/在这里实现功能/return null;}输入描述:输入两个字符串数字输出描述:输出相加后的结果,string型示例1输入999999999999999999999999999999999999999999999999991输出1000000000000000000000000000原创 2020-06-17 21:55:49 · 321 阅读 · 0 评论 -
Java-字符串中数字子串求和
一、题目:给定一个字符串str,求其中全部数字串所代表的数字之和。要求:1.忽略小数点,例如"A1.3",其中包含两个数字1和3.2.考虑’-’,如果有连续奇数个,则为负,如果有连续偶数个时,就为正数。例如:“A-1BC–12”,其中包含两个数字-1和12.举例: str="A1CD2E33",返回36 str="A-1B--2C--D6E",返回7二、 代码描述:设置三个变量:sum求子符串中数字之和;num字符串中数字的值;falg表示符号位,初始情况下为正。public cl原创 2020-06-05 13:36:57 · 2161 阅读 · 1 评论 -
Java-判断两个字符串是否互为变形词
一、题目描述:给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1和str2互为变形词。请实现函数判断这两个字符串是否互为变形词。举例:str1="123",str2="321" 返回truestr1="123",str2="1223" 返回false二、代码描述:方法一:数组。遍历str1,统计str1中每个字符出现的次数,array[a]=b,a是字符,b为该字符出现的次数。遍历str2,每遍历一个字符,就将该字符原创 2020-06-04 17:28:37 · 433 阅读 · 0 评论 -
Java中常见的七大排序总结
一、直接插入排序原理:整个区间被分为:有序区间和无序区间;每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入。当待排序区间元素比较少或者接近有序时,直接插入的效率比较高。private static void insertSort(int[] array){ for(int bound=1;bound<array.length;bound++){ ...原创 2020-04-27 18:09:02 · 192 阅读 · 0 评论 -
判断一棵树是不是完全二叉树
解题思路:设置一个标志位,判断属于哪个阶段。阶段一:任何一个节点,一定有两个子树。当左子树不为空,右子树为空;左子树为空,右子树为空就进入第二阶段。当左子树为空,右子树不为空,不是完全二叉树,直接返回false。阶段二:任何一个节点,一定没有子树。代码描述:public class CompleteTree { static class Node{ pub...原创 2020-04-03 18:20:17 · 89 阅读 · 0 评论 -
抽象类和普通类的区别
抽象类VS普通类抽象类不能被实例化,抽象类的子类必须实现所有的抽象方法才能被实例化;普通类可以实例化。抽象类必须用关键字abstract修饰;普通类不使用关键字abstract。抽象类中的抽象方法只被声明,没有方法体;普通类有方法体。抽象方法不能是private的,因为抽象类必须被子类继承进行方法重写;普通方法可以是public、private、protected的。...原创 2020-03-28 08:41:10 · 924 阅读 · 0 评论 -
抽象类和接口的区别
抽象类VS接口:不同点:1、关键字:包含抽象方法的类是抽象类,抽象类使用abstract修饰;接口使用interface修饰。(1)抽象方法没有方法体;(2)抽象方法不能被private修饰,因为抽象方法让继承之后的子类重写。(3)抽象类中可以没有抽象方法,但抽象方法必须在抽象类中。(4)子类继承抽象类,要么实现抽象方法,要么将子类设为抽象类。(5)接口创建好后,需要其他类来实现接口...原创 2020-03-27 13:00:00 · 163 阅读 · 0 评论 -
构造器的作用,构造器与set、get方法之间的区别
一、构造器的定义及作用?方法名必须与类名相同,构造方法没有返回值类型声明。使用new关键字实例化对象的时候会自动调用构造方法。Java语言中,每个类至少有一个默认的构造方法。一旦显示的定义了构造方法,系统将不会提供默认的构造方法。public class People { private String name; private int age; private...原创 2020-03-07 22:03:23 · 2364 阅读 · 1 评论 -
编写Order类,判断类中创建的两个对象是否相等。
题目描述:编写Order类,有int型的orderId,String型的orderName,相应的getter()和setter()方法,两个参数的构造器,重写父类的equals()方法:public boolean equals(Object obj),并判断类中创建的两个对象是否相等。题目解析:判断类中创建的两个对象是否相等。即判断Order类中对象的属性都相等。代码描述:publi...原创 2020-02-24 12:29:02 · 1560 阅读 · 1 评论 -
通过继承求圆的面积和圆柱体积
题目描述:设置圆柱的底面半径和高,输出圆的面积和圆柱体积。代码描述:public class Circle { public double radius; public Circle(){ radius=1.0; } public void setRadius(double radius) { this.radius = r...原创 2020-02-21 16:27:13 · 1346 阅读 · 0 评论 -
类的成员:属性和方法(方法传递)
一、属性:1、成员变量和局部变量的定义:成员变量:又称属性、字段。是指在类体内,方法体外声明的变量。局部变量:在方法体内声明的变量。2、成员变量与局部变量的区别:成员变量:(1)定义在类中,在整个类中都可以被访问。(2)实例成员变量存在堆内存中。(3)成员变量可以不初始化,有默认值。默认值规则:对于各种数字类型, 默认值为0.对于 boolean 类型, 默认值为 fal...原创 2020-02-14 16:41:06 · 2264 阅读 · 0 评论 -
1、 给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面;2、给定两个整型数组, 交换两个数组的内容。
给定整型数组, 把所有的偶数放到数组前面, 把所有奇数放到数组后面.解题思路:(1)设置left和right分别指向第一个元素的下标和最后一个元素的下标。(2)left从左往右找,找到第一个奇数;right从右往左找,找到第一个偶数;然后交换两个元素的位置。循环即可。import java.util.Arrays;public class Test { public static...原创 2020-02-11 18:04:23 · 981 阅读 · 0 评论 -
数组的创建与使用(1、创建一个 int 类型数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100;2、实现一个方法 printArray;3、实现一个方法 transform。)
一、创建一个 int 类型数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100import java.util.Arrays;public class Test { public static void main(String[] args) { int[] arr = new int[100]; setNumber(arr); ...原创 2020-02-10 15:45:09 · 2295 阅读 · 0 评论 -
java数组练习二(1、数组冒泡排序;2、二分查找指定元素;3、顺序查找指定元素;4、检查数组的有序性)
数组排序(冒泡排序)基本思想:以升序数组为例,每次将两个相邻的元素进行比较,将小的元素调到前面,反复进行比较,直至最后的元素。第一次找出最大的元素,第二次找出第二大的元素…最后一次找出最小的元素。import java.util.Arrays;public class Test { public static void main(String[] args) { i...原创 2020-02-10 14:29:18 · 180 阅读 · 0 评论 -
java数组练习一(1、找数组中的最大元素;2、求数组元素平均值;3、数组逆序;4、数组拷贝)
找数组中的最大元素public class Test { public static void main(String[] args) { int[] arr={1,2,3,4,5,6,7,8,9}; System.out.println(Max(arr)); } public static int Max(int[] a){ ...原创 2020-02-10 13:54:41 · 248 阅读 · 0 评论 -
青蛙跳台阶问题
初阶青蛙跳台阶问题描述:一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。解题思路:如果要知道青蛙跳上第n级台阶有多少种方法,就必须知道青蛙跳上(n-1)级台阶和(n-2)级台阶共有多少种方法。F(1)=1;F(2)=2;F(3)=3;F(4)=5;F(5)=8;…F(n)=F(n-1)+F(n-2).是不是和斐波纳契数列相似...原创 2020-02-09 14:28:00 · 151 阅读 · 0 评论 -
汉诺塔(递归)
递归求解汉诺塔问题描述:有三个柱子标号为A,B,C。把A柱上的m个圆盘移动到C柱上,可以借助B柱。规则:1、每次只能移动一个圆盘。2、小圆盘在上面,大圆盘在下面。解题思路:1、有一个圆盘,直接从A->C.2、有m个圆盘,首先把(m-1)个圆盘从A->B(递归),再把第m个圆盘从A->C,最后(m-1)个圆盘从B->C(递归)。代码如下:import j...原创 2020-02-08 22:36:50 · 208 阅读 · 0 评论 -
方法递归二(1、输入一个非负整数,返回组成它的数字之和;2、递归求斐波那契数列的第 N 项。)
1、写一个递归方法,输入一个非负整数,返回组成它的数字之和思路:当输入的数字为个位数时,可以直接打印。所以递归出口为个位数。import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner input=new Scanner(System.in...原创 2020-02-08 16:41:25 · 252 阅读 · 0 评论 -
java方法递归一(1、求 N 的阶乘;2、求 1 + 2 + 3 + ... + 10;3、按顺序打印一个数字的每一位)
1、递归求 N 的阶乘解析:N!=N*(N-1)!;求N的阶乘,首先求(N-1)的阶乘,再求(N-2)的阶乘,以此类推,直到找到递归出口N<=1.import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner input=new Sc...原创 2020-02-08 16:11:52 · 369 阅读 · 0 评论 -
方法重载
方法重载:方法名相同,参数列表不同的两个或多个方法。重载的规则:(1)方法名相同(2)方法的参数不同(参数个数或者参数类型)(3)方法的返回值类型不影响重载.例题:在同一个类中,分别定义求两个整数的方法和三个小数之和的方法。 并执行代码,求出结果。public class Test { public static void main(String[] args) { ...原创 2020-02-07 14:54:15 · 131 阅读 · 0 评论 -
Java方法的创建和调用(1、求两个数的最大值max2,再写一个求3个数的最大值的函数max3;2、调整数组顺序使得奇数位于偶数之前;3、求N的阶乘;4、求N的阶乘和;5、斐波那契数列;)
1、创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算。技巧:求两个数中的最大值可使用(a>b)?a:b;import java.util.Scanner;public class Test { public static void main(String[] args) {...原创 2020-02-06 21:23:41 · 876 阅读 · 0 评论 -
Java输入输出(1、乘法口诀表;2、输出一个整数的每一位;3、编写代码模拟三次密码输入的场景。4、获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列.)
1、输出乘法口诀表注意:乘法表输出格式。public class Test {public static void main(String[] args) { for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+...原创 2020-02-06 15:25:16 · 270 阅读 · 0 评论 -
循环结构(1、求二进制中1的个数;2、最大公约数和最小公倍数;3计算1/1-1/2+1/3-1/4+1/5 …+ 1/99 - 1/100 的值;4、水仙花;5、猜数字游戏)
1、求一个整数,在内存当中存储时,二进制1的个数。注意:m=m&(m-1),直到m变为0。与运算多少次,就有多少个1。import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner input=new Scanner(System.in); ...原创 2020-02-05 20:11:31 · 440 阅读 · 0 评论 -
分支结构(年龄,素数,闰年,9的个数)
1、根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner scanner=new Scanner(System.in...原创 2020-02-04 23:05:52 · 234 阅读 · 2 评论 -
查找数组中指定元素(二分查找)
一、描述:在一个有序数组中查找某个数N。若找到,返回下标值;若未找到,则返回-1.二、二分法的基本思想:以升序数组为例, 二分查找的思路是先取中间位置的元素, 看要找的值比中间元素大还是小. 如果小, 就去左边找; 否则 就去右边找.三、使用二分查找的要求:(1)数组有序;(2)适合大量数据中查找。四、代码实现:public class Java { static int ...原创 2019-12-29 22:58:56 · 1514 阅读 · 0 评论