- 博客(65)
- 收藏
- 关注
原创 多线程详解
我们知道在 JAVA 中实现并发编程的,大多是使用多线程。而在 JAVA 的标准库中就提供了一个 Thread 类,来表示/操作线程。创建好的 Thread 实例其实和操作系统中的线程就是一一对应的关系。Thread 类其实就是 java 对操作系统提供的一组关于线程的 API(C语言风格)进行封装后的结果。//通过自定义标志位来实现线程的中断 public static boolean isTrue = false;while(!isTrue) {//来个sleep,方便我们观察效果 try {
2022-08-23 21:15:26 424 1
原创 文件操作及IO(java)
在操作系统中管理文件是 “文件系统” 模块负责,而 文件系统 则是通过 树形结构 的方式来组织管理文件的。"此电脑"就是这颗树的根节点,而里面的 C盘、D盘等就相当于一棵棵的子树。(就相当于一棵N叉数)在组织完文件之后,为了能正确定位 每个文件的 位置,就有了 “路径”。那接下来我们就了解一些 java 中的有关文件(普通文件)的操作。我们知道在 java 中给我们提供了一些有关文件IO的操作。并将它们放在了 java.util.io 中。在这其中的文件操作大致分为两类:文件系统相关的操作 / 文件内容相关
2022-06-25 16:44:12 398
原创 进程与线程区别及理解
1.理解进程进程是什么?通俗的将就是“跑起来”的程序。我们的电脑上都有许多的 .exe 的可执行文件,当我们没有双击的时候,它们就只是静静的躺在那儿。如果我们双击其中的任意一个,这时 操作系统 就会将这个 .exe 文件加载到 内存 中,并让 CPU 一条一条的执行其中的指令。而这个时候,这个被双击的 .exe 文件就没有躺在那儿了,它已经开始了自己的工作。我们称这就是一个进程!!!2.操作系统是如何管理进程的?先对一个进程进行描述(主要是明确这个进程上有哪些属性)。由于
2022-05-09 21:14:22 592
原创 JDBC的使用
1. 理解JDBCJDBC就是官方为了使我们能从容的连接市面上的数据库而设计的一组接口,我们程序员在写代码时可以使用JDBC这组接口来连接我们所需要使用的数据库。JDBC 的基本写法(增删改) //创建数据源 DataSource dataSource = new MysqlDataSource(); ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/test?chara
2022-05-04 11:15:00 931 1
原创 数据库事务
1. 理解事务当我们把多个操作打包成一个整体后,这就可以称为一个事务。为什么需要将多个操作打包成一个整体?举个例子: 转账路人甲要将账户里的1000元钱通过网上银行转账到路人乙的账户上。这时就可以分成两个操作:操作1 : 先从 路人甲 的账户上扣除 1000 元。操作2 : 再将 路人乙 的账户上增加 1000 元。注意 :只有当上述的两个操作都执行成功后,才能说转账成功!!!分析一下上述的问题,我们发现对于 路人甲 和 路人乙 来说,我们只需要两种状态:操作1 和 操作2 都
2022-05-03 16:32:53 798
原创 数据库索引背后的数据结构
1. 理解 MySQL 中的索引文章目录1. 理解 MySQL 中的索引2. 和索引相关的一些 SQL 语句3. 索引背后的数据结构 如果把 MySQL 想象成一本书,那么这本书的目录就相当于 MySQL 的索引。 我们知道如果阅读一本书,我们可以通过这本书的目录来快速的查找到自己上次所阅读到的内容,这样就使我们阅读的效率更高。 同样的 MySQL 的索引也是这个道理,它的出现也是为了让我们在数据库中的查找提升效率。 但是我们还是需要明白一点,这不是没有代价的。在书上添加目录,就会使得整
2022-04-28 16:38:35 367
原创 BigInteger中的常用方法
1. abs()功能: 返回 一个 BigInteger 类型的绝对值2. add(BigInteger val)功能: 返回(this + val)的值,返回值类型 BigInteger3. and(BigInteger val)功能: 返回(this & val)的值,返回值类型 BigInteger4. compareTo(BigInteger val)功能: 比较 BigInteger 类型 和 BigInteger类型 的大小 ,返回值类型 int
2022-04-08 10:16:20 1116
原创 试题 历届真题 砝码称重【第十二届】【省赛】【B组】
资源限制内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s这里很感谢广大同行们的思路:这道题目是一个动态规划题。我们用 F[ i ][ j ] = true / false 表示用前i个砝码能/不能称量重量为 j的物体,假如我们用前i-1个砝码能够称出重量为 w 的物体,那么我们加上第 i 个砝码就能够称重重量为 w+w[i] 的物体以及重量为 w-w[i] 或者 w[i]-w 的物体,大体思路就是这样。代码:...
2022-03-31 21:23:30 1188
原创 动态规划:01背包问题
题目:我有一个背包,容量为 m , 然后我有 n 件商品 ,n1 n2 n3 n4 n5 ... ,每件商品的价值和体积都分别存放在 price[] 和 size[] 数组中。求:容量为 m 的背包 , 所装商品的最大价值是多少?(注意每件商品只有一个)状态分析 : 容量为 j 的背包所装到第 i 件商品时的价值是多少?状态转移方程:1. 当第 i 件商品的 体积(size)本就大于 容量为 j 的背包时: F[ i ][ ...
2022-03-31 00:14:20 243
原创 试题 算法提高 约数个数
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 我们用D(i)表示i有多少个约数。 例如 D(1)=1 D(2)=2 D(3)=2 D(4)=3。 给定n, 求D(1)+D(2)+D(3)+...+D(n)除以1000000007(10^9+7)的余数。输入格式 一个正整数n输出格式 一行一个整数表示答案。样例输入4样例输出8数据规模和约定 N<=10000000由于这个题的数据量很大,常规思路拿不到 100 % 正
2022-03-28 10:00:00 354
原创 试题 算法提高 Cat And Mouse
资源限制时间限制:1.0s 内存限制:256.0MB 猫和老鼠在10×10的方格中运动(如图3-6),例如: *...*..... ......*... ...*...*.. .......... ...*.C.... *.....*... ...*...... ..M......* ...*.*.... .*.*...... C=猫(CAT) M=老鼠(MOUSE) *=障碍物 .=空地 猫和老鼠每秒中走一格,如果在某一秒末它们在同一格
2022-03-27 22:12:27 756
原创 试题 历届真题 双向排序【第十二届】【省赛】【B组】
代码:import java.util.*;public class TestDemo4 { /** * 存放每组的操作参数 */ static class Node{ public int p; //方式 public int q; //参数 //构造方法 public Node(int p, int q) { this.p = p; this.q = q; } } public static ...
2022-03-20 21:55:24 722 1
原创 蓝桥杯 第十二届 试题E:路径 (java)
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图 中的最短路径。小蓝的图由 2021 个结点组成,依次编号 1 至 2021。对于两个不同的结点 a, b,如果 a 和 b 的差的绝对值大于 21,则两个结点 之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条 长度为 a 和 b 的最小公倍数的无向边相连。例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24.
2022-03-20 00:27:23 563
原创 蓝桥杯 - BASIC-30 阶乘计算 (java)
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入格式 输入包含一个正整..
2022-03-15 15:26:47 241
原创 蓝桥杯 - 试题 基础练习 十六进制转八进制 (java)
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。样例输入 2 3..
2022-03-15 10:30:00 312
原创 蓝桥杯 - 煤球数目/生日蜡烛/分小组/抽签 (java)
目录1.煤球数目2.生日蜡烛3.分小组4.抽签1.煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。代码: /** * 煤球数目 * 规律: * 1 * 1+2 * 1+2+3 * 1+2+3+4 .
2022-03-15 08:30:00 319
原创 蓝桥杯 - 方格填数 (java代码)
如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+(如果显示有问题,也可以参看【图1.jpg】)填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。题目分析: 在方格里面填数 0...
2022-03-15 06:45:00 333
原创 蓝桥杯 - 剪邮票 (java)
如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。【图1.jpg】【图2.jpg】【图3.jpg】注意 : 单纯使用 dfs 是不行的,因为 dfs 只能 剪出可以一笔画成的相连邮票..
2022-03-14 20:00:00 548
原创 蓝桥杯 - 标题:方格计数 (java)
如图p1.png所示,在二维平面上有无数个1x1的小方格。我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。你能计算出这个圆里有多少个完整的小方格吗?注意:需要提交的是一个整数,不要填写任何多余内容。解题思路:代码: /** * 标题:方格计数 * @param args */ public static void main(String[] args) { //圆的半径 int r = 1000; //统计次数 int co...
2022-03-14 18:15:00 335
原创 蓝桥杯 - 四平方和 (java)
四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 <= a <= b <= c <= d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法程序.
2022-03-14 17:15:00 312
原创 蓝桥杯 - 牌型种数 (java实现)
小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。牌:有13中牌型 2 - A每种牌型 又有 4 中年花色红桃: 2 3 4 5 6 7 8 9 10 j q k a黑桃: 2 3 4 5 6 7 8 9 10 j q k a...
2022-03-14 15:00:00 246
原创 蓝桥杯 - 饮料换购 (java)
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能得到多少瓶饮料。输入:一个整数n,表示开始购买的饮料数量(0<n<10000)输出:一个整数,表示实际得到的饮料数例如:用户输入:100程序应该输出:149用户输入:101程序应该输出:151资源约定:峰值内存消耗(含虚拟机) < 25.
2022-03-14 13:45:00 254
原创 蓝桥杯 - 凑算式 (java实现)
B DEFA+--- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。代码:/** * 凑算式 * @author ...
2022-03-14 11:45:00 273
原创 LeetCode - 53. 最大子数组 (java实现)
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例2:输入:nums = [1]输出:1示例3:输入:nums = [5,4,-1,7,8]输出:23提示:1 <= nums.length <= 1...
2022-03-14 10:00:00 452
原创 求一个数组的全排列(java)
示例:arr = {1,2,3}输出: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1(输出结果没有顺序, 但每个元素不能重复)题解:使用 回溯算法 ,将它转换为一个 树 的结构, 然后 每个节点都可以 与 数组(比如arr = {1,2,3})中的元素进行组合,只要组合的个数达到 数组 的长度,就是一种组合方法(这个过程中需要进行去重)代码:...
2022-03-14 08:30:00 1697
原创 蓝桥杯 - 立方变自身 (java)
观察下面的现象,某个数字的立方,按位累加仍然等于自身。1^3 = 18^3 = 512 5+1+2=817^3 = 4913 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?请填写该数字,不要填写任何多余的内容或说明性的文字。代码: public static void main(String[] args) { int t = 0; //遍历每个数 for(int i = 1; i < 10000000...
2022-03-13 21:15:00 616
原创 蓝桥杯 - 网友年龄 (java)
某君新认识一网友。当问及年龄时,他的网友说:“我的年龄是个2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”请你计算:网友的年龄一共有多少种可能情况?提示:30岁就是其中一种可能哦.请填写表示可能情况的种数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。代码: public static void main(String[] args) { int count = 0; //两层for循环分别用来遍历 各位 和 .
2022-03-13 20:00:00 132
原创 LeetCode - 198. 打家劫舍 (java)
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。输入:[2,...
2022-03-13 19:30:00 151
原创 蓝桥杯 - 标题:穿越雷区 (java实现)
X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废。某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负能量特征),怎样走才能路径最短?已知的地图是一个方阵,上面用字母标出了A,B区,其它区都标了正号或负号分别表示正负能量辐射区。例如:A + - + -- + - - +- + + + -+ - + - +B + - + -坦克车只能水平或垂直方向上移动到相邻的区。数据格式要求:输入第一行是一个整数n,表示方阵的大小, 4&.
2022-03-13 15:30:00 263
原创 蓝桥杯 - 垒骰子(java实现)
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。 atm想计算一下有多少种不同的可能的垒骰子方式。两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。由于方案数可能过多,请输出模 10^9 + 7 的结果.
2022-03-13 09:15:00 339
原创 蓝桥杯 - 加法变乘法(java实现)
我们都知道:1+2+3+ ... + 49 = 1225现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如:1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015就是符合要求的答案。请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。注意:需要你提交的是一个整数,不要填写任何多余的内容。 /** * 加法变乘法 * 解题关键: 1225-(a+a+1)-(b+b+1); .
2022-03-12 20:00:00 332
原创 蓝桥杯 - 三羊献瑞 (java实现)
观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------------- 三 羊 生 瑞 气其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。代码:/** * 蓝桥杯: 三羊献瑞 * @author 只爱吃土豆 * */public class TestDemo4 { public static void main(String[...
2022-03-12 17:15:00 476
原创 蓝桥杯 - 标题:表格计算(java实现)
某次无聊中, atm 发现了一个很老的程序。这个程序的功能类似于 Excel ,它对一个表格进行操作。不妨设表格有 n 行,每行有 m 个格子。每个格子的内容可以是一个正整数,也可以是一个公式。公式包括三种:1. SUM(x1,y1:x2,y2) 表示求左上角是第 x1 行第 y1 个格子,右下角是第 x2 行第 y2 个格子这个矩形内所有格子的值的和。2. AVG(x1,y1:x2,y2) 表示求左上角是第 x1 行第 y1 个格子,右下角是第 x2 行第 y2 个格子这个矩形内所有格子的值的平.
2022-03-12 15:00:00 232
原创 蓝桥杯 - 标题:显示二叉树(java实现)
这道题是一个 代码填空题:排序二叉树的特征是:某个节点的左子树的所有节点值都不大于本节点值。某个节点的右子树的所有节点值都不小于本节点值。为了能形象地观察二叉树的建立过程,小明写了一段程序来显示出二叉树的结构来。class BiTree{ private int v; private BiTree l; private BiTree r; public BiTree(int v){ this.v = v; } public void add(BiTree .
2022-03-12 12:15:00 251
原创 蓝桥杯 - 标题:五星填数 (java实现)
如【图1.png】的五星图案节点填上数字:1~12,除去7和11。要求每条直线上数字和相等。如图就是恰当的填法。请你利用计算机搜索所有可能的填法有多少种。注意:旋转或镜像后相同的算同一种填法。请提交表示方案数目的整数,不要填写任何其它内容。package com.lanqiaobei.learn;/** * 标题:五星填数 * @author 只爱吃土豆 * */public class TestDemo2 { public static int count.
2022-03-12 10:00:00 159
原创 蓝桥杯 - 标题:分机号 ( java实现 )
题目:X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位。比如:751,520,321 都满足要求,而,766,918,201 就不符合要求。现在请你计算一下,按照这样的规定,一共有多少个可用的3位分机号码?请直接提交该数字,不要填写任何多余的内容。代码:package com.lanqiaobei.learn;/** * 标题:分机号 * @author 只爱吃土豆 * */public class Test
2022-03-12 06:00:00 412
原创 MySQL安装时一直卡在starting server...
如果出现这种情况的话那么就是两个原因:1.有可能你的计算机名是中文的,所以在安装时生成的日志文件默认是中文名,导致卡住.2. 你之前安装过 MySQL,并且重新装的时候没有卸载干净.现在我们从卸载到重装来一遍:1.首先将 MySQL 停止运行.2.卸载 MySQL3.在我们之前安装 MySQL 的地方检查有没有残留的文件 , 并将其手动删除.(我是默认c盘的)4.删除注册表删除四项内容:HKEY_LOCAL_MACHINE\SYSTEM\Co...
2022-03-02 01:16:01 17754 12
原创 剑指 Offer 58 - II. 左旋转字符串(java实现)
看题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"说明不需要考虑当输入所需旋转字符的个数大于字符串长度时的情况。三种方法:...
2022-01-11 21:33:54 702 3
原创 剑指 Offer 63. 股票的最大利润(java实现)
题目:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。(注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。)示例2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。思考:想
2022-01-10 23:11:16 637 4
原创 剑指 Offer 11. 旋转数组的最小数字(java实现,二分法)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在重复元素值的数组numbers,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组[3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为1。示例1:输入:[3,4,5,1,2]输出:1示例2:输入:[2,2,2,0,1]输出:0思考:我在做这个题目时,第一时间想到的就是用穷举法直接找到最小...
2022-01-10 15:52:08 234 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人