Java
张三爻
沉淀
展开
-
Leetcode刷题———————杨辉三角(递归公式的实现、List的按地址传值)
刷Leetcode的递归题目,题目为:给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]本题的解题关键要推出递归实现的公式,在此地不再赘述。具...原创 2020-04-08 00:29:50 · 306 阅读 · 0 评论 -
Leetcode刷题——— 两两交换链表中的节点(JAVA的按值传递、链表递归)
在Leecode 练习递归时,遇到以下题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。要注意不能只交换结点的值,而是要交换结点,交换结点的值则实现更加容易。输出示例为:给定 1->2->3->4, 你应该返回 2->1->4->3.试着实现代码: ...原创 2020-04-07 00:11:08 · 230 阅读 · 0 评论 -
【ACM】对称方阵----算法及实现
题目为:将该方阵分为上下两部分:其中上部分的实现代码为: for (int i = 1; i <= n; i++) { s = i; for (int j = 1; j < 2 * n; j++) { if (j <= i) { ...原创 2020-03-25 19:12:00 · 316 阅读 · 0 评论 -
【ACM】情人节的百宝箱--使用快速排序的算法实现
题目为:输入为:JAVA实现使用快速排序,然后对每个数进行遍历:快速排序的代码为: public static int partition(double a[] ,int low,int high ){ double pivotpos=a[low]; while(low<high){ while(...原创 2020-03-25 12:34:07 · 804 阅读 · 0 评论 -
【ACM】约瑟夫环问题的算法实现
题目为:本题思路为:使用数组来实现,将所有数组元素初始化为1,每此将报到3的人的值置为0,下一轮便不再加入计数。使用sum进行计数,每次淘汰一人,sum的值便+1,直到sum的值为n-1,便退出循环!JAVA的代码实现为: Scanner scanner = new Scanner(System.in); System.out.println("请输...原创 2020-03-23 22:51:37 · 298 阅读 · 0 评论 -
【ACM】魔方阵的算法与实现
遇见ACM题:给的提示算法为:笔者按照以上算法进行三阶模拟运行,发现不能完全推出魔方阵,有兴趣的可以自己尝试!于是上百度搜索相关内容,如下:参考来源:https://baike.baidu.com/item/%E9%AD%94%E6%96%B9%E9%98%B5/10973743?fr=aladdin#reference-[2]-667337-wrap可见实现方...原创 2020-03-23 18:00:34 · 541 阅读 · 0 评论 -
【ACM】哥德巴赫猜想——偶数形式的算法与分析
JAVA的实现代码为: Scanner scanner = new Scanner(System.in); System.out.println("请输入值:"); int n=scanner.nextInt(); boolean flag=Boolean.TRUE; int[] znum=new int[1...原创 2020-03-23 15:38:11 · 541 阅读 · 0 评论 -
十进制到八进制的转换方法
1.间接法:先将十进制转换成二进制,然后将二进制又转换成八进制 。2.直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,分为整数部分的转换和小数部分的转换:整数部分方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止 最后读数时候,从最后一个余数起,...原创 2020-03-23 14:57:59 · 120589 阅读 · 2 评论 -
Java核心技术【卷一】——学习笔记(五)
Clone:"浅拷贝"与"深拷贝"先来回忆为一个包含对象引用的变量建立副本时会发生什么。原变量和副本都是同一个对象的引用。这说明, 任何一个变量改变都会影响另一个变量。例:Employee original = new Employee("John Public", 50000);Employee copy = original ;copy.raiseSalary(lO)...原创 2020-03-22 15:46:19 · 157 阅读 · 0 评论 -
【汉诺塔问题】盘子的不停移动---汉诺塔算法的分析和实现
原问题为:注:每次只能移动一个盘子,网上现有的汉诺塔问题中有些没有这个限制条件,因而可以使用同时移动上面的n-1个盘子来求解,相对比叫简单,而本题有次限制,因此需要特别注意!图示:如果自己苦思解法,未免有些困难,因此使用现有的比较成熟的算法思想,该算法来自百度百科,具体算法与链接如下所示:算法介绍其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n –...原创 2020-03-22 15:35:17 · 2177 阅读 · 0 评论 -
JAVA的hasNext()一直为死循环!
在java中监听是否有输入一般使用hasNext()方法,但是一个问题,例如下面代码:while(scanner.hasNext()){ bu=bu.append(scanner.next()+"\r"); System.out.println(bu.toString()); }此时hasNext()便会一直循环下去,形成死...原创 2020-03-19 18:35:28 · 2729 阅读 · 1 评论 -
【快速因数分解】数论--质因数
如何分解质因数?百度的方法如下:(一)分解质因数只针对合数。(分解质因数也称分解素因数)求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。分解质因数的方法是先用一个合数的最小质因数去除这个合数,得出的数若是一个质数,就写成这个合数相乘形式;若是一个合数就继续按原来的方法,直至最后是一个质数 。(二)Pollard Rho因数分解1975年,John...原创 2020-03-18 17:01:38 · 1978 阅读 · 0 评论 -
ACM题目
Scanner scanner = new Scanner(System.in); System.out.println("请输入值:"); int[] sum=new int[100]; int i=0; int num=0,nums=0; while(scanner.hasNext() )...原创 2020-03-14 21:06:52 · 132 阅读 · 0 评论 -
JAVA----输入流Ctrl+z(EOF)结束
输入一些整数,按回车,然后同时按ctrl键和z键,再按回车结束输入Scanner scanner = new Scanner(System.in);JAVA读取EOF主要是靠scanner.hasNext()来判断c语言中的Ctrl+Z 在JAVA中对应的快捷键Ctrl+D ,才能读取EOF流...原创 2020-03-14 20:52:57 · 2158 阅读 · 0 评论 -
大数值:bigInteger---2^64次方
问:如果基本的整数和浮点数精度不能够满足需求,可以使用java.math包中的两个类:BigInteger和BigDecimalBigInteger in=BigInteger.valueOf(2);或者BigInteger in=new BigInteger("2");将in变量的值设为2然后再计算2^64in=in.pow(64);//乘方in=...原创 2020-03-11 18:09:51 · 902 阅读 · 0 评论 -
JAVA的字符转ASCII码
Scanner scanner=new Scanner(System.in);System.out.println("请输入一个字符:");String s=scanner.next();System.out.println(s.getBytes()[0]);关键代码在:s.getBytes()[0]原创 2020-03-06 20:57:37 · 808 阅读 · 0 评论 -
JAVA除法小数问题
4/3System.out.println(4/3);结果为:14/3.0System.out.println(4/3.0);结果为:1.3333333333333333若不想要自动取整 ,则应使用后者 4/3.0原创 2020-03-06 19:12:04 · 1198 阅读 · 0 评论 -
JAVA保留小数位数和四舍五入问题
主要使用了BigDecimal和DecimalFormat这两个主要的类:一、sum值为需要处理的小数RoundingMode.DOWN 为不执行四舍五入 BigDecimal decimal=new BigDecimal(sum).setScale(2,RoundingMode.DOWN); System.out.println(decimal);二、DecimalF...原创 2020-03-06 18:38:28 · 367 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(六)--集合
集合构成:集合的接口:集合有两个基本接口:Collection 和 MapList 是一个有序集合,元 素 会 增 加 到 容 器 中 的 特 定 位 置。1.使用迭代器访问2.使用一个整数索引来访问Set 接口等同于 Collection 接口,不过其方法的行为有更严谨的定义。集(set) 的 add方法不允许增加重复的元素。SortedSet 和 Sorte...原创 2020-02-20 17:17:08 · 121 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(五)--泛型(二)
定义一个泛型类,泛型的意思就是可以随意更改定义类的数据类型使用Pair<T>来进行定义Main类:package com.changsan.fanxing1;public class Main1 { public static void main(String[] args) { Pair<Integer> ss=new Pair&...原创 2020-02-20 16:48:26 · 136 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(五)--泛型(一)
若要对某个特定类的特定关键字进行比较,可使用泛型来进行比较若要对Student类的score字段进行比较,需要对Student implements Compareable接口public class Student implements Comparable<Student> {}再override compareTo()方法,在该方法中进行编写比较代码即可@O...原创 2020-02-20 12:06:44 · 103 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(四)
有时候,可能希望阻止人们利用某个类定义子类。不允许扩展的类被称为 final 类。public final class Executive extends Manager{.....}final 类中的所有方法自动地成为 final 方法不过, 如果将一个类声明为 final, 只有其中的方法自动地成为 final,而不包括域因此,应该养成这样一个良好的程序设计习惯: 在...原创 2020-01-10 18:33:57 · 168 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(三)
类库设计者决定将保存时间与给时间点命名分开。所以标准 Java 类库分别包含了两个类:一个是用来表示时间点的 Date 类;另一个是用来表示大家熟悉的日历表示法的 LocalDate 类。不要使用构造器来构造 LocalDate 类的对象。实际上,应当使用静态工厂方法 (factory method) 代表你调用构造器。Local Date.now()LocalDate new...原创 2020-01-07 14:41:30 · 164 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(二)
要想通过控制台进行输人,首先需要构造一个 Scanner 对象,并与“ 标准输人流” System.in 关联。Scanner in = new Scanner(System.in);nextLine 方法将输入一行。System.out.print("What is your name? ");String name = in.nextLine();要想读取一个单词(以空白...原创 2020-01-05 15:36:17 · 159 阅读 · 0 评论 -
Java核心技术【卷一】——学习笔记(一)
Java基本数据类型:int、short、long、byte、float、double、char、boolean数据类型 字节数 byte 1 short 2 int 4 float 4 double 8 long 8 长整型:L或者l(小写的L)作为后缀 十六进制:0X 或者 0x使用final关键字指示...原创 2019-05-26 22:56:36 · 116 阅读 · 0 评论 -
Windows 安装多个JDK版本 如何使用对应JDK版本的java、javac命令
由于需要,可能在Windows 上安装多个JAVA JDK版本,当运行与jdk版本不匹配的内容时会出现如下错误信息:F:\>java F:\File\JAVAProject\sockets\src\sockets.java错误: 找不到或无法加载主类 F:\File\JAVAProject\sockets\src\sockets.java或者eption in thread...原创 2019-04-24 19:08:07 · 579 阅读 · 0 评论