
java经典题目总结
java经典题目总结
永不言弃12345
年轻人总是会找借口说这个东西不是我所感兴趣的,所以我做不好是应该的。 但他们没有注意的是,你面对的事情中感兴趣的是总是少数,这就使得大多数你做事情的态度总是很懈怠,很消极,这使你变成了一个很懈怠得人。当你面对自己感兴趣的东西时,你发现你已经攥不急紧拳头了。
展开
-
输出出现次数大于等于n/2的数
public class Test3{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); while (sc.hasNextLine()){ String s=sc.nextLine(); String [] str=s.split(" "); Integer [] arr= new Inte.原创 2020-06-30 21:22:33 · 241 阅读 · 0 评论 -
最多可以放的蛋糕数
思路:采用数组法,在遍历前4个方块的时候,将他们周围的元素4个方块置位-1;public static int number(int m,int n) { int[][] array = new int[m][n];//数组初始值为0 int count = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { .原创 2020-06-30 21:19:35 · 195 阅读 · 0 评论 -
无缓存交换 java
递归生成格雷码当n=1时,{0,1}当n=2时,{00,01,11,10}当n=3时,{000,001,011,010,110,111,101,100}…n位格雷码共有2^n个元素。其中每个元素是(n-1)位的格雷码前面加0,然后再反向后前面加1生成的。如n=3可由n=2进行两步操作后得到:1.在n=2的格雷码前面加0,生成:000,001,011,0102.在n=2的格雷码逆...原创 2020-04-22 22:46:41 · 136 阅读 · 0 评论 -
下面那个标识符是合法的? 下面关于java并发的说法正正确的是?
标识符是以字母开头的字母数字序列:数字是指0~9,字母指大小写英文字母、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,如汉字;字母、数字等字符的任意组合,不能包含+、- 等字符;不能使用关键字;大小写敏感;不能是数字开头;A.数字开头*B.有空格C.包含"*"public static void main(String args[]) {Thread t...原创 2020-04-22 22:15:39 · 1119 阅读 · 0 评论 -
构建乘积数组
思路:B[i]的值可以看作下图的矩阵中每行的乘积。下三角用连乘可以很容求得,上三角,从下向上也是连乘。因此我们的思路就很清晰了,先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上三角中的分布规律,把另一部分也乘进去。代码:对于第一个for循环第一步:b[0] = 1;第二步:b[1] = b[0] * a[0] = a[0]第三步:b[2] = b[1] * a[...原创 2020-04-21 22:22:07 · 98 阅读 · 0 评论 -
个位数统计
思路:将给定的数字按照每位拆分为单个数字然后保存在list中,每碰到一个相同的数字就值加一,扫描完整个字符串后遍历输出list集合即可import java.util.*;public class Main {public static void main(String[] args){Scanner sc = new Scanner(System.in);String N = s...原创 2020-04-21 22:01:08 · 308 阅读 · 0 评论 -
给出以下代码,请给出结果
匿名类格式是:new 父类/接口 () {定义成员或覆盖方法}使用场景:只使用一次时。匿名内部类:创建了一个匿名内部类,产生的对象复制给o;向上转型:子类对象赋给超类引用多态(运行时绑定):编译时是Object,但是其运行时类型则变为了equals方法被重写的Object类,运行时动态绑定会调用子类重写的equals( )方法重写:重写了Object的 equals 方法,会覆盖原来...原创 2020-04-20 22:31:25 · 681 阅读 · 0 评论 -
下面代码的输出结果是什么?
Try…catch…finally与直接throw的区别:try catch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。main方法,把抛出的RuntimeException抛给了调用者(JVM)。catch语句块里面,打印完1之后,又抛出了RuntimeException,程序并没有处理它,而是直接抛出,因此执行完finally语句块之...原创 2020-04-20 22:13:47 · 7217 阅读 · 0 评论 -
关于上面代码片正确的是?
被final修饰的变量为常量:b6=b4+b5;//b6=10 常量编译时已经确定byte,short,char在计算时会被自动提升成整形;由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型, 会先提升成 int, 再参与计算如果要使用byte接受,可以强制转换b3=(byte)b1+b2;...原创 2020-04-20 22:03:14 · 200 阅读 · 0 评论 -
结构型模式中最能体现扩展性模式的是?
设计模式分为三大类:创建型设计模式:单例模式,工厂方法模式,简单工厂模式,建造者模式、 原型模式结构型设计模式:适配器模式,***模式,AOP、装饰器模式、行为型设计模式:观察者模、板方法模式结构型模式是描述如何将类对象结合在一起,形成一个更大的结构,结构模式描述两种不同的东西:类与类的实例。故可以分为类结构模式和对象结构模式。在GoF设计模式中,结构型模式有:1...转载 2020-04-20 22:00:52 · 2051 阅读 · 0 评论 -
机器人走方格
机器人在X*Y的矩阵中走,每一步都有两种选择:要么向下、要么向右。 如果向下走,问题就变成:求(X-1)Y矩阵中机器人的走法; 如果向右走,问题就变成:求X(Y-1)矩阵中机器人的走法; 显然是递归的思想! 既然是递归,再考虑退出条件:当整个矩阵只有一行 或 一列的时候只有一种走法。public class Robot {public int countWays(int x, int y)...原创 2020-04-20 21:42:54 · 196 阅读 · 0 评论 -
Fiboncci数列
思路:首先构建一个Fibonacci数列,然后从该数列中找到与n最接近的值 ,在构建数列的时候,如果使用递归,就会因重复计算产生成倍的时间代价,所以用数组的形式 即:A[n]=A[n-1]+A[n-2] 但是数组又会产生额外的空间花销,考虑到每次迭代只会用前两项的值,所以我们可以只用三个变量 a b c分别表示每次迭代中的 A[n]A[n-1] A[n-2] 计算数列的过程中,如果发现某一...原创 2020-04-20 21:37:52 · 343 阅读 · 0 评论 -
下面那些情况可以终止当前线程的运行 java程序输出结果
当一个优先级高的线程进入就绪状态时,当前线程执行时,如果是抢占式的调度方式,是会暂停当前线程的执行的,当仍然不是终止它的执行。当不是抢占式的调度时,高优先级的线程将在当前线程终止后,得到优先的执行权。调用sleep方法,当前线程j进入阻塞状态,sleep执行完成后重新进入就入就绪状态线程结束的三个原因: 1、run方法执行完成,线程正常结束 2、线程抛出一个未捕获的Exception或者Er...原创 2020-04-15 21:20:52 · 6102 阅读 · 0 评论 -
数字颠倒 将这个整数以字符串逆序输出
思路:采用StringBuffer进行拼接public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); String str=new String(); str...原创 2020-04-15 17:31:24 · 247 阅读 · 0 评论 -
求N!末尾0的个数
思路:任意挑选几个数字进行分解质因数,例如:6 = 2* 315 = 3* 564 = 2* 2* 2* 2* 2* 2 = 2^6100 = 2^2 * 5^2576 = 2^6 * 3^2那么我们在计算n的阶乘时,实际上就是把所有小于等于n的正整数分解成质因数,然后再将其乘到一起,那么末尾0的个数实际上就是2*5的个数,而2的个数明显是很多很多的,所以问题就转化成了5的个数。...原创 2020-04-15 17:16:48 · 605 阅读 · 0 评论 -
不使用中间变量交换两个变量的值
1.加减法 a = a + b; b = a - b; a = a - b;可以交换浮点数,但是有精度损失2.乘除法 a = a * b; b = a / b; a = a / b;可以交换浮点数,但是有精度损失3.异或法可以交换整形,但是不可以交换浮点型 a ^= b; //a=a^b b ^= a; //b=b^(a^b)=b^a^b=b^b...原创 2020-04-11 17:56:05 · 160 阅读 · 0 评论 -
找出N个数里面的最小K个 删数
思路:先排序,再根据K值进行输出import java.util.*;public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); String str=sc.nextLine(); ...原创 2020-04-10 18:46:05 · 212 阅读 · 0 评论 -
求最小公倍数
思路:最小公倍数=两数乘积/(最大公因子);如何求取最大公因子:采用辗转相除法或者采用递归 public static int gb(int A,int B){ if(A==0||B==0){ return 0; } return (A*B)/gy(A,B); } public stat...原创 2020-04-10 18:04:59 · 278 阅读 · 0 评论 -
A.B.C三个人手上具体的糖果数
这道题目的实质是:判断三元一次方程组是否有解及求解。 把题目条件用方程式表示: A-B=Y1; B-C=Y2;A+B=Y3; B+C=Y4;用消元法求解: A=(Y1+Y3)/2; B=(Y3-Y1)/2=(Y2+Y4)/2; C=(Y4-Y2)/2; 由于题目给出的是整数,要求解也是整数,这个约束条件也需要注意下import java.util.Scanner;public clas...原创 2020-04-10 18:04:48 · 256 阅读 · 0 评论 -
神奇的口袋 用两个栈实现队列
思路:采用递归思想: ①物品n个,物品体积逐一放入weight[]中 ②递归函数count(int s,int n) : 其中s为剩余物品重量,n为剩余可选的物品个数则分以下两步递归求解:a.从后往前装,装上weight[n]后,若剩余物品仍然有解则count(s-weight[n],n-1);b.若装了weight[n]后,无解,则删除该包,尝试第n-1个count(s,n-1)...原创 2020-04-10 18:04:39 · 144 阅读 · 0 评论 -
删除字符串 小易买苹果
代码:原创 2020-04-10 18:04:24 · 107 阅读 · 0 评论 -
最长连续子串 判断合法的括号串
代码:public static String numder(String str){ StringBuffer sb=new StringBuffer(); for(int i=0;i<str.length();i++) { char b = str.charAt(i); if ((b >= ...原创 2020-04-10 18:04:15 · 377 阅读 · 0 评论 -
数组逆序对 兑换饮料
思路:数组的逆序对考题较多,比如示例的数组:[1,2,3,4,5,6,7,0] 那么,它包含逆序对有:{1,0},{2,0},{3,0},{4,0},{5,0},{6,0},{7,0}总共7个逆序对。再比如数组{7,5,6,4},逆序对总共有5对,{7,5},{7,6},{7,4},{5,4,{6,4};暴力法:设置两个循环,外层循环逐渐遍历数组,内层循环找到比外层的数,找到一次,coun+...原创 2020-04-10 18:04:05 · 127 阅读 · 0 评论 -
统计回文 寻找第K大
1.统计回文思路:1.写出判断回文数的方法2.利用StringBuffer中的insert( 位置,各种类型),进行判断插入后是否是回文数public class Test5 { //判断回文串的方法 public static boolean isHuiWen(String s) { int i = 0; ...原创 2020-04-10 18:03:51 · 235 阅读 · 0 评论