- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 Spring框架学习笔记
1. Spring框架1.1 什么是框架?框架(Framework):在软件设计中指为解决一个开放性问题而设计的具有一定约束性的支撑结构。在此结构上可以根据具体问题扩展、安插更多的组成部分。1.2 Spring是什么Spring:分层的Java SE/EE full-stack 开源的轻量级Java开发框架。Spring具有控制反转(IoC)和面向切面(AOP)两大核心。Spring框架通过声明方式灵活地进行事务的管理,提高开发效率的质量。Spring框架不仅限于服务器端的开发。从简单性、可测
2021-06-27 10:03:22
228
1
原创 Java学习笔记 反射
反射JAVA反射机制是在运行状态中,获取任意一个类的结构 , 创建对象 , 得到方法,执行方法 , 属性。1,类加载器Java类加载器(Java Classloader)是Java运行时环境(Java Runtime Environment)的一部分, 负责动态加载Java类到Java虚拟机的内存空间中。java默认有三种类加载器,BootstrapClassLoader、ExtensionClassLoader、App ClassLoader。BootstrapClassLoad
2021-04-29 20:23:38
271
2
原创 Java学习笔记 XML与JSON
XML与JSON1, XML(eXtensible Markup Language)特性:xml具有平台无关性,是一门独立的标记语言xml具有自我描述性作用:网络数据传输数据存储配置文件xml文件:.xml文件是保存XML数据的一种方式xml语法(看一个案例)<?xml version="1.0" encoding="UTF-8"?> <!--第一行声明xml版本和字符编码--><!--标记可以嵌套,第一层是根标记,
2021-04-22 12:14:49
283
原创 Java学习笔记 多线程
Java学习笔记 多线程0,放在前面看官可以试着运行或者自行编写这篇博客里的代码,可以加深对多线程的理解。有不懂的类多点点ctrl+鼠标左键看看源码可能就懂了1,基本概念进程与线程进程:指的是内存中运行的应用程序,每个进程都有一个独立的内存空间线程:是进程中的一个执行路径,同一个进程中的线程共享一个内存空间,线程之间可以自由切换,并发执行,一个进程至少有一个线程。一个进程启动之后,里面的若干执行路径又可以划分为若干个进程。线程调度分时调度:所有线程轮流使用CPU,平均分配每个
2021-04-14 15:16:24
325
2
原创 Java学习笔记 深入理解打印流和缓存流
理解打印流可以先看看俺的IO和文件File篇,传送门打印流在控制台,我们经常使用System.out.print(),System.out.println(),System.out.printf()这样的函数,点开out的源码,我们可以发现这个静态变量public static final PrintStream out = null;控制台的输出,其实是在调用PrintStream中的方法,这个类不仅可以把数据输出到控制台,也可以把数据输出到文件。PrintStream 打印字节流,PrintW
2021-04-09 20:33:58
342
原创 Java学习笔记 文件File与IO流
在说字符流与字节流之前,先说一下文件,因为它们大部分时候都在操作文件文件File可以把文件File的对象理解成一个句柄,用这个抽象的句柄来操作实际文件文件对象句柄的创建/*File类常用的有两个构造函数,一个传String:pathname, 可以是相对路径,也可以是绝对路径;另一个传String:parent与String:child。*///比如想在C盘下创建一个a.txt的文件句柄File file = new File("c:\\a.txt");//比如在C:\\heihe.
2021-04-09 17:40:52
208
原创 深入理解Java集合体系
深入理解Java集合体系集合体系其实一共分为两大块儿:Collection和Map,他们都与Iterator相关联1, Collection(单值)Collection是一个接口,实现了Iterable接口,意味着所有实现Collection的类都将实现Iterator方法,他们都能生成自己的迭代器。并使用foreach遍历。Collection中的主要抽象方法说明boolean add(E e)添加boolean remove(Object o)删除boo
2021-04-05 17:53:07
229
原创 Java学习笔记 深入理解try,catch,finally代码块
1,先看一段代码package day08.blogTryCatch;public class Demo1 { public static void main(String[] args) { Person p = heihei(); System.out.println(p.age); } public static Person heihei(){ Person p = new Person(); try{.
2021-03-31 11:37:15
222
原创 1017 Queueing at Bank (25 分) JAVA
题意 && 解题思路 && 坑:和1014有点像,不过只有一个人在黄线内等。动态规划问题。所有人processing时间不能超过1小时,也就是他一旦服务了一小时,不再继续回到队列最后排队,而是直接离开(是我想复杂了=.=)所有的时间转化成秒来计算。对于等待时间的计算,分两种情况:(1)顾客到达的时候所有窗口都在服务,必须等,直到一个窗口空闲。窗口服务完后更新当前currentTime += 顾客.processingTime即可。(2)顾客到达的.
2021-03-12 11:35:07
207
2
原创 1016 Phone Bills (25 分) JAVA
题意:(1)排序题,但是细节很复杂。对于ID,按照字母表排序;而每个ID中的所有通话,按照日期从小到大排。(2)用TreeMap来存储<String,ArrayList<Record>>来存储,一个ID对应一个列表,列表里存储ID的所有通话记录并排好序。而TreeMap里面可以自己写一个Comparator按ID排序(3)同一个ID的排序完毕的列表里,相邻的on-line和off-line记为一次通话记录。(4)对于每次通话,封装成一个Record对象,除了存储i..
2021-03-10 21:25:36
223
原创 1015 Reversible Primes (20 分) Java
题意 && 解题思路:看上去是个送分题,但是也卡了一会儿,主要是没看懂题=。=。。。。。。如果输入23 2,23的2进制-->10111,10111倒过来是11101,11101转为10进制-->29,23和29都是质数,就返回true,否则false。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input .
2021-03-10 15:57:40
120
原创 1014 Waiting in Line (30 分) Java
题意 && 解题思路:这道题脑子里要有一个动画。假如是两个窗口,每个窗口最多站两个人。排队的人按照两个规则站队:(1)两个队伍一样长,选窗口编号小的站(2)两个队伍长度不一样,选人少的站,一旦站队,就不再换队了。动态规划问题。按照题目给的数据,我们可以模拟一下排队的情况。1) 假设还没到8点,但是顾客已经来齐了,已经站好队。----------------window[0]: 1 3window[1]: 2 4----------------2...
2021-03-10 12:37:16
354
原创 1013 Battle Over Cities (25 分) java
题意:图问题,意思是在一个无向图中,以城市为顶点,城市之间有高速公路连接着,战争爆发,如果一个城市被敌人占领了,其他城市之间需要用高速公路运送物资,至少要修几条公路。解题思路:城市被占领后,本来连通(不一定)着的城市可能变得不再连通了,转化为求连通子图个数问题,即:这些城市之间形成了多少个连通子图(subConnectBranch:int),要把这些连通子图重新连接起来,至少要修subConnectBranch-1条公路。考虑到可能是个稀疏矩阵,于是采用邻接表建图。遍历领接表,每次遍历之..
2021-03-08 16:30:43
229
原创 1012 The Best Rank (25 分) java
题意:抓住一点,按照A—>C—>M—>E的顺序取每门成绩的最高排名,因为每个学生的成绩是鼓励式的,所以允许有并列。如果只有A,B两个学生,且A和B的Average都是90,但是A的C语言成绩比B的C语言成绩高,但B仍然输出 1 A。解题思路:用4个ArrayList<Student>存储学生排名,分别按照A,C,M,E升序排列。同时用一个Map来存储<Student.id, Student.rank[]>键值对,在代码里面对应<Strin...
2021-03-08 11:37:10
304
1
原创 1011 World Cup Betting (20 分) java
题意:题目意思不难理解,不过要注意一下赢,输,平的赔率是不可能相等的。这样还顺便不用考虑其他的情况。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); double triple[][] = new double[3][3]; double odd = 1; for(int i.
2021-03-08 08:32:35
122
原创 1010 Radix (25 分) java
题意 && 解题思路:这题题目意思就看了老半天。。。。。。为什么一定要先确认一下N1或者N2的radix?一直傻瓜从2遍历到35不就行了。后来发现=.=原来是我连题目都没看懂,开始就得了6分。一直提交,一直6分。。。。。。想想,N1和N2是不是可以无限大。而且进制很有可能不止到35结束。虽然每一位的数字最大只到z,但是进制不一定啊,比如,这样的zyx是完全有可能以36为进制吧。这道题最关键的是要注意到:不管N1和N2的初始进制是多少,他们最后如果在某个进制上相等了,那他们一.
2021-03-07 22:17:10
245
原创 1009 Product of Polynomials (25 分) Java
解题思路:这题和1002有点像,但是不是+,而是乘。也考虑用map来存储。exp(指数)和coe(系数)刚好组成<Integer, Double>的键值对,指数Key是不能重复的,刚好符合多项式指数的特性,更新还方便。只是最后用TreeMap来存储结果,需要在初始化TreeMap的时候倒序排序,可以用Comparator.reverseOrder()。import java.util.Scanner;import java.util.Map;import java.util.H.
2021-03-07 21:35:57
160
1
原创 1008 Elevator (20 分)java
解题思路:送分题。import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextInt(); int time = n*5; int lastFloor = 0; for(int i=0; i<n; i++) { int floor .
2021-03-07 21:31:49
120
原创 1007 Maximum Subsequence Sum (25 分) java
解题思路:最大子列和问题,题目不需要得到所有等长的子列和,相等的取前面的即可,简化了题目。最大子列和的最好时间复杂度是O(N),所以应该尽量想着一遍遍历求出答案,题目要求输出最大子列和,子列和final_sum,开始&&结束,对应的值,想到这比较符合数组的存储结构,遍历下标,start对应一个,end对应一个,再用start和end访问数组就得到结果了。除此之外还需要两个中间变量,一个是遍历过程中的sub_sum,一个index用来更新start的值,当遍历数组过程中sub_s.
2021-03-07 21:30:06
147
1
原创 1006 Sign In and Sign Out (25 分) java
解题思路:题意也好理解,我的思路是将每个id的到达时间和离开时间统一转化成秒,再分别用两个map存储一下,同时更新最早到达时间和最迟离开时间,因为题目保证了两个时间都是唯一的,而map刚刚好没有重复的key。数据处理用split函数已经喜闻乐见了。import java.util.Scanner;import java.util.HashMap;import java.util.Map;public class Main { public static void main(String.
2021-03-07 21:09:17
184
原创 1005 Spell It Right (20 分) java
思路:题意好理解,就是数字长度不限定,不过Java里面有BigInteger,试一下里面的几个函数这题也就好处理了。import java.util.Scanner;import java.math.BigInteger;public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in);// BigInteger num = new BigInt.
2021-03-07 21:04:36
129
原创 1004 Counting Leaves(30) java
题意:题目意思是建立一颗树(非二叉树),然后统计树上的非叶子结点,区别一下树的遍历与二叉树的遍历(前者似乎只有dfs和bfs,除了bfs,和二叉树的先序后序中序还是有点不一样的=。=),最开始做的时候测试点2,4不通过,最开始用左孩子右兄弟法转换成二叉树来做的,不仅及其繁琐,还没ac。这道题有两个测试点应该是这样的情况,比如:7 301 2 02 0302 3 04 05 0605 1 07与7 301 2 02 0305 1 0702 3 04 05 06要能.
2021-03-06 19:23:37
193
原创 1003 Emergency (25 分) java
题意:用Dijkstra来做,题目在Dijkstra的基础上增加了一些操作,除了要更新dist[] 和 visit[] 数组外,将原算法中记录路径的parent[]数组改为--->记录start至end最短路径上的rescue[],另外还需要一个ways[]数组来更新最短路径的条数。在遇到多条最短路径时,表现为dist[j] == dist[index] + edge[index][j],此时将ways[j] += ways[index]即可。然后比较rescue[j] 与 rescue[ind.
2021-03-05 14:53:21
275
原创 1002 A+B for Polynomials(25) java
题意:2 1 2.4 0 3.22 2 1.5 1 0.5A 和 B 都是多项式,K代表后面有几项,而<1, 2.4>与<0, 3.2>正好对应指数和系数,即而<2, 1.5>与<1, 0.5>同理可得为而相加刚好得到,前面的3为非零项,后面紧接着为<2, 1.5>, <1, 2.9>, <0, 3.2>3 2 1.5 1 2.9 0 3.2思路:用TreeMap来解决,...
2021-03-03 21:36:26
126
3
原创 1001 A+B Format (20) java
1001 A+B Format (20 分)Calculatea+band output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).Input Specification:Each input file contains one test case. Ea...
2021-03-03 20:00:56
149
2
翻译 basic_classification
1. 分类的定义 给定一个训练集 ---每条记录的特征用元组(x, y)表示,其中x是属性集,y是类标签。 x:可以是,属性,预测变量,自变量,输入 y:类,响应,因变量,输出 任务:学习一个模型,这个模型将每一个属性集x映射到一个预定义类标签y 图1...
2020-05-18 00:04:12
628
原创 1014 福尔摩斯的约会 java
大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母D,代表星期四;第 2 对相同的字符是E,那是第 5 个英文字母,...
2019-09-25 10:11:35
183
原创 1013 数素数 java
令Pi表示第i个素数。现任给两个正整数M≤N≤104,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23...
2019-09-25 10:10:46
163
原创 1012 数字分类 java
给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A1= 能被 5 整除的数字中所有偶数的和; A2= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算n1−n2+n3−n4⋯; A3= 被 5 除后余 2 的数字的个数; A4= 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位; A5...
2019-09-25 10:10:05
342
原创 1011 A+B 和 C java
给定区间 [−231,231] 内的 3 个整数A、B和C,请判断A+B是否大于C。输入格式:输入第 1 行给出正整数T(≤10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出Case #X: true如果A+B>C,否则输出Case #X: f...
2019-09-25 10:09:29
254
原创 1010 一元多项式求导 java
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为0 0。输入样例:3 4...
2019-09-10 13:11:02
549
原创 1009 说反话 java
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World He...
2019-09-10 13:10:23
249
原创 1008 数组元素循环右移问题 java
一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0A1⋯AN−1)变换为(AN−M⋯AN−1A0A1⋯AN−M−1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入...
2019-09-10 13:09:28
256
原创 1007 素数对猜想 java
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数...
2019-09-10 13:08:44
210
1
原创 1006 换个格式输出整数 java
让我们用字母B来表示“百”、字母S表示“十”,用12...n来表示不为零的个位数字n(<10),换个格式来输出任一个不超过 3 位的正整数。例如234应该被输出为BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数n(<1000)。输出格式:每个测试用例的输出占一行,用规...
2019-09-10 13:07:58
114
原创 1005 继续(3n+1)猜想
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、...
2019-09-09 20:25:29
135
原创 1004 成绩排名 java
读入n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ...第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 个字符的字符...
2019-09-09 20:24:33
299
1
原创 1003 我要通过!java
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有P、A、T这三种字符,不可以包含其它字符; 任意形如xPATx的字符串都可以获得“答案正确”,其中x或者是空字符串,或者是仅由字母A组成的字符串; 如果...
2019-09-09 20:18:02
140
原创 1002 写出这个数 java
读入一个正整数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:...
2019-09-09 20:10:30
138
原创 1001 害死人不偿命的(3n+1)猜想 java
卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在 1950 年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美...
2019-09-09 20:01:34
150
chap3_basic_classification.pdf
2020-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人