日记
J-Proton
这个作者很懒,什么都没留下…
展开
-
mybatis XML开发 插件一键生成配置
mybatis XML开发 插件一键生成配置pom文件: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version>原创 2020-06-24 12:50:57 · 480 阅读 · 0 评论 -
万能集合判空防npe 类
import java.math.BigDecimal;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Optional;import java.util.Set;import java.util.function.Consumer;import org.apache.commons.collections4.C原创 2020-05-20 16:46:06 · 204 阅读 · 0 评论 -
计算机网络知识点
计算机网络的层次结构层次结构设计的基本原则要解决许多不同的问题:比如保证数据通畅识别目的计算机目的计算机的状态数据是否错误要解决这些问题就要分层实现原则各层是相互独立的、每一层有足够的灵活性各层之间完全解耦OSI七层模型应用层: 为计算机用户提供接口和服务表示层 : 数据处理(编码解码,加密解密等)会话层:管理(建立、维护、重连)通信会话传输...原创 2020-02-20 09:54:07 · 186 阅读 · 0 评论 -
synchronized 详细介绍 及底层实现
synchronized 详细介绍 及底层实现synchronized 关键字有三种用法:修饰实例的方法,给当前类的实例加锁,在运行同步代码块时先要得到当前实例的锁 修饰静态的方法,修饰静态方法就是给当前class类对象加锁,在执行同步代码块之前要先得到这个class的锁 修饰代码块,给局部变量加锁,也可以是实例也可以是类,对给定对象加锁,进入同步代码库前要获得给定对象的锁...原创 2019-11-12 11:31:14 · 198 阅读 · 0 评论 -
JAVA Map的详细学习
前言:**Java 自带了各种 Map 类。这些 Map 类可归为三种类型:通用Map,用于在应用程序中管理映射,通常在 java.util 程序包中实现HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap专用Map,通常我们不必亲自创建此类Map,...原创 2019-10-31 23:03:55 · 158 阅读 · 0 评论 -
Java 集合中 TreeSet的 Comparable 与Comparator两个接口的实现方法
TreeSet 是可排序的集合要实现该集合必须要在类里或者集合构造器中传入 实现比较器接口的方法,否则会报错一共有两种 :Comparable 和 ComparatorComparator在TreeSet的有参构造器中传入自定义的Comparator 实现方法;import java.util.Comparator;public class Mycompaarator impleme...原创 2019-10-28 22:13:00 · 251 阅读 · 0 评论 -
Java 基础
基本类型是值传递,引用类型是引用传递传递的是自己本身,而String类型是引用类型进行引用传递的时候不会改变,因为String的值是final常量 ,传递与改变的是自己的复制品,与他一样的还有各种基本类型的包装类:{Integer,Character,Byte,Short,Double,Float,Boolean,Long}构造器可以私有,要想实现类方法就得将方法改为静态的方法 public ...原创 2019-10-22 23:19:29 · 134 阅读 · 0 评论 -
圆圈中最后剩下的数字
圆圈中最后剩下的数字0, 1, …, n-1这n个数字(n>0)排成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。解法一:举个简单的例子{0, 1, 2, 3, 4}和m = 3。从0开始第一个被删除的将是2,然后圆圈里剩下{0,1, 3, 4},接下来从3开始计数,那么下一个被删除的将是0(注意这里到链表末尾所以转到了链表头),然后圆...原创 2019-08-21 22:50:59 · 103 阅读 · 0 评论 -
扑克牌的顺子
扑克牌的顺子从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,大小王可以看做任意数字。为了方便,大小王均以0来表示,并且假设这副牌中大小王均有两张。思路:1)进行对5张牌进行排序; *2)找出为0的个数; *3)算出相邻数字的空缺总数; *4)如果0的个数大于等于空缺总数,说明连续,反之不连续; **5)...原创 2019-08-21 22:23:10 · 363 阅读 · 0 评论 -
字符串中第一个只出现一次的字符
字符串中第一个只出现一次的字符在字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出b。如果字符串中不存在只出现一次的字符,返回#字符。样例:输入:“abaccdeff”输出:‘b’思路:用一个Hashmap key是每个字母 value是出现的次数,第一次用for循环将字符串每个字符录到哈希map里,如果有重复的就把value加一;然后第二遍遍历string...原创 2019-08-16 17:29:41 · 193 阅读 · 0 评论 -
打印1到最大的n位数
打印1到最大的n位数输入3,就打印1-999的所有数思路一:找到10的n次方,利用for循环打印从1-10^n但是这样是不行的,如果数字一旦超过long 就会溢出思路二:用一个n位的字数组来模拟十进制加法,实现进位;数组是a[0],a[1],a[2]…index 0 用来表示个位,所以打印的时候得从数组的后面打。public static void max(int n){ ...原创 2019-08-12 22:05:50 · 77 阅读 · 0 评论 -
丑数
丑数我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。求第n个丑数的值。样例输入:5输出:5注意:习惯上我们把1当做第一个丑数。解法:创建数组保存已经找到的丑数,根据丑数的定义,丑数应该是另一个丑数乘以2、3或者5的结果(1除外)。因此,我们可以创建一个数组,里面的数字是排好序的丑数,每个丑数都是前面的丑数乘以...原创 2019-08-16 16:35:59 · 109 阅读 · 0 评论 -
复杂链表的复刻
请实现一个函数可以复制一个复杂链表。在复杂链表中,每个结点除了有一个指针指向下一个结点外,还有一个额外的指针指向链表中的任意结点或者nul思路:分为三步:第一步将每个节点和下一个节点中间插入他自己的复制,改变指针;第二步如果这个节点有random节点,将他给复制的节点第三步 拆开链表把复制的分离出来 public RandomListNode Clone(RandomListNod...原创 2019-08-12 15:15:41 · 82 阅读 · 0 评论 -
二叉树中和为某一值的路径
输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。样例给出二叉树如下所示,并给出num=22。5/ 4 6/ / 12 13 6/ \ / 9 1 5 1输出:[[5,4,12,1],[5,6,6,5]]思路:用递归从根节点到子节点遍历,然后用sum每次减去节点...原创 2019-08-12 11:47:00 · 90 阅读 · 0 评论 -
构建乘积数组
构建乘积数组给定一个数组A[0, 1, …, n-1],请构建一个数组B[0, 1, …, n-1],其中B中的元素B[i]=A[0]×A[1]×… ×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。样例输入:[1, 2, 3, 4, 5]输出:[120, 60, 40, 30, 24]解法:假设原数组的有一个A[i]新数组的B[i]就是除去A[i]在数组A中所有数的乘积...原创 2019-08-25 12:14:37 · 97 阅读 · 0 评论 -
把字符串转换成整数
把字符串转换成整数请你写一个函数StrToInt,实现把字符串转换成整数这个功能。当然,不能使用atoi或者其他类似的库函数。样例输入:“123”输出:123注意:你的函数应满足下列条件:忽略所有行首空格,找到第一个非空格字符,可以是 ‘+/−’ 表示是正数或者负数,紧随其后找到最长的一串连续数字,将其解析成一个整数;整数后可能有任意非数字字符,请将其忽略;如果整数长度为0,则...原创 2019-08-25 11:36:15 · 317 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。思路后序遍历是左右根,所以数组的最后一个元素肯定是根(root),从数组的最右面开始肯定都是比root小的左子树,然后会有一个点开始都是比root大的右子树,并且根节点的所有子树都有这个特点所以应该调用递归,找到左右子树中间分开的那个点,然后分...原创 2019-08-12 10:31:45 · 83 阅读 · 0 评论 -
礼物的最大价值
礼物的最大价值在一个m×n的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?要想走到一个位置的最优,假设该坐标为i , j 从上面能到达改点,up (i-1,j)从左面也能到达改点, left(i, j-1)就看这走...原创 2019-08-15 19:32:21 · 96 阅读 · 0 评论 -
把数字翻译成字符串
把数字翻译成字符串给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成”a”,1翻译成”b”,……,11翻译成”l”,……,25翻译成”z”。一个数字可能有多个翻译。例如12258有5种不同的翻译,它们分别是”bccfi”、”bwfi”、”bczi”、”mcfi”和”mzi”。请编程实现一个函数用来计算一个数字有多少种不同的翻译方法。样例输入:“12258”输出:5思路:典型...原创 2019-08-15 18:22:43 · 78 阅读 · 0 评论 -
把数组排成最小的数
把数组排成最小的数输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组[3, 32, 321],则打印出这3个数字能排成的最小数字321323。样例 输入:[3, 32, 321] 输出:321323 注意:输出数字的格式为字符串。思路:复杂度为O(n!),那么我们能不能不进行全排列就能找到那个特定的排列呢?很容易想到就是排序,如果能想...原创 2019-08-15 11:49:13 · 79 阅读 · 0 评论 -
左旋转字符串
左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串"abcdefg"和数字2,该函数将返回左旋转2位得到的结果"cdefgab"。注意:数据保证n小于等于输入字符串的长度。样例输入:“abcdefg” , n=2输出:“cdefgab”解决方法:分为三步1 将整个数组逆序 gfedcba...原创 2019-08-20 11:07:41 · 73 阅读 · 0 评论 -
求1+2+…+n
求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)不能使用乘除法,不能使用循环语句、判断语句。可以考虑的有 单目运算符:++和–,双目运算符:+,-,移位运算符<<和>>,关系运算符>,<等,逻辑运算符&&,||,&,|,^,赋值=最有可能使用到的就是...原创 2019-08-21 23:13:28 · 329 阅读 · 0 评论 -
字符流中第一个只出现一次的字符
字符流中第一个只出现一次的字符请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是’g’。当从该字符流中读出前六个字符”google”时,第一个只出现一次的字符是’l’。如果当前字符流没有存在出现一次的字符,返回#字符。样例输入:“google”输出:“ggg#ll”解释:每当字符流读入一个字符,就进行一次判断...原创 2019-08-16 22:22:23 · 105 阅读 · 0 评论 -
ccf 消除游戏
import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); in...原创 2019-09-11 19:48:31 · 128 阅读 · 0 评论 -
ccf 俄罗斯方块 80分
import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ...原创 2019-09-10 12:19:30 · 195 阅读 · 0 评论 -
ccf Z 字形扫描
解法:这个题用一个方向数组循环表示方向,只不过是往右往下都是走一步就不走了,而左下和右上都是要走到边界为止,而且到达(n-1,0)之后方向循环的次序就会颠倒,你要更新方向数组import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc...原创 2019-09-10 10:23:40 · 163 阅读 · 0 评论 -
ccf窗口
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main{ static class Screen{ int x1; int x2; int y1; int y2; int ...原创 2019-09-09 21:00:32 · 152 阅读 · 0 评论 -
ccf 火车购票
方法一import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int row_sum[] = new i...原创 2019-09-09 16:30:17 · 134 阅读 · 0 评论 -
ccf 打酱油
import java.util.*;public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(2*(n/50)+(n-n...原创 2019-09-06 11:19:03 · 82 阅读 · 0 评论 -
ccf 公共钥匙盒
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。 每次取钥匙的时候,老师们都会找到自己所需要的钥匙将其...原创 2019-09-06 10:48:28 · 94 阅读 · 0 评论 -
ccf 学生站队
// public static void main(String[] args) {// Scanner sc = new Scanner(System.in);// int n = sc.nextInt(), m = sc.nextInt();// int a [] = new int [n];// int temp = 1;/...原创 2019-09-06 09:20:10 · 128 阅读 · 0 评论 -
ccf 分蛋糕
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(),k = sc.nextInt(); int boy...原创 2019-09-05 16:52:56 · 235 阅读 · 0 评论 -
ccf 小明上学
小明上学题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0 时刻起,[0,r)...原创 2019-08-28 23:15:21 · 124 阅读 · 0 评论 -
ccf 模拟题 24点问题
24点问题题目定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行。其中加法用符号 + 表示,减法用符号 - 表示,乘法用小写字母 x 表示,除法用符号 / 表示。在游戏里除法为整除,例如 2 / 3 = 0,3 / 2 = 1, 4 / 2 = 2。老师给了你 n 个游戏的解,请你编写程序验证每...原创 2019-08-28 21:09:12 · 504 阅读 · 0 评论 -
两个链表的第一个公共结点
输入两个链表,找出它们的第一个公共结点。当不存在公共节点时,返回空节点。样例给出两个链表如下所示:A: a1 → a2↘c1 → c2 → c3↗B: b1 → b2 → b3输出第一个公共节点c1方法一:有两个指针 p指的A链表头部 q指的是B链表的头部 ,pq 同时走,一旦走到头就换到另一个链表的头上,p就到B链表,q就到A链表,如果是有公共节点的他...原创 2019-08-17 22:49:11 · 116 阅读 · 0 评论 -
数组中的逆序对
数组中的逆序对在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。样例输入:[1,2,3,4,5,6,0]输出:6思路:如果用双层循环暴力做,算法复杂度是o(n^2) 肯定是不对的我们想到用排序算法做,既能遍历到逆序对,又能不改变原数组逆序对的前后位置,所以用归并排序做假如[1,2,3,4,5,6,0]归并排...原创 2019-08-17 11:09:14 · 131 阅读 · 0 评论 -
从1到n整数中1出现的次数
从1到n整数中1出现的次数输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含“1”的数字有1,10,11和12,其中“1”一共出现了5次。思路:假如说有abcdef位,当我们有任以数在c处为1,_ 1 _ _大致分为00到ab和00~ab-1这两种00到ab 的话 中间的1是根据边界条件而定是否存在00到ab-1 由于进位数学等常...原创 2019-08-15 00:13:33 · 132 阅读 · 0 评论 -
翻转单词顺序
翻转单词顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。样例输入:“I am a student.”输出:“student. a am I”思路:先将整个字符串以字母为单位反转之后再在单词的范围内将字母反转用库函数实现: pu...原创 2019-08-20 01:04:49 · 326 阅读 · 0 评论 -
实现一个函数用来判断字符串是否表示数值
实现一个函数用来判断字符串是否表示数值题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”,”5e2”,”-123”,”3.1416”和”-1E-16”都表示数值。 但是”12e”,”1a3.14”,”1.2.3”,”±5”和”12e+4.3”都不是。思路:设有符号的整数为A,无符号的整数为B,那么最标准的形式应该是A . B E/e A任何一个...原创 2019-08-06 14:55:32 · 792 阅读 · 0 评论 -
二叉搜索树与双向链表(*)
二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。注意:需要返回双向链表最左侧的节点。例如,输入下图中左边的二叉搜索树,则输出右边的排序双向链表。方法一:非递归实现,利用中序遍历: 10 / \ 6 14 /\ /\ ...原创 2019-08-13 15:49:59 · 69 阅读 · 0 评论