自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Java IO流

1.IO概述1.1 什么是IO我们把数据的传输看作是数据的流动,就像水流一样I : Input,输入,即流向内存O: Output, 输出,即流出内存1.2 IO的分类根据数据的流向分为输入流和输出流输入流 : 把数据从其他设备读取到内存中的流输出流: 把数据从内存中写到其他设备中的流根据数据类型可分为字符流和字节流2.字节流一切均为字节一切文件数据在存储时,都是以二进...

2020-04-18 14:14:19 230

原创 Java File类

概述java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建,查找,删除等操作。构造方法File(File parent, String child)从父抽象路径名和子路径名字符串创建新的 File实例。File(String pathname)通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。 参数pathname为路径名称(字符串...

2020-04-17 19:15:33 145

原创 Lambda表达式

概述Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。...

2020-04-17 15:01:01 186

原创 Java多线程

1.并发与并行并发:指两个或多个事件在同一时间段内发生并行:指两个或多个事件在同一时刻发生(同时发生)2.线程与进程进程:指一个内存中运行的应用程序,每个进程都有一个独立的运行空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行...

2020-04-17 12:41:09 130

原创 IDEA常用快捷键

快捷键功能Alt + Enter导入包,自动修正代码Ctrl + Y删除光标所在行Ctrl + D复制光标所在行Ctrl + Alt + L格式化代码Ctrl + /单行注释,再按取消注释Ctrl + Shift + /选中代码注释,再按取消注释Alt + Ins自动生成代码,toString,get,set等方法,新建文件等...

2020-04-16 12:37:52 87

原创 试题 算法提高 盾神与积木游戏

问题描述最近的m天盾神都去幼儿园陪小朋友们玩去了~  每个小朋友都拿到了一些积木,他们各自需要不同数量的积木来拼一些他们想要的东西。但是有的小朋友拿得多,有的小朋友拿得少,有些小朋友需要拿到其他小朋友的积木才能完成他的大作。如果某个小朋友完成了他的作品,那么他就会把自己的作品推倒,而无私地把他的所有积木都奉献出来;但是,如果他还没有完成自己的作品,他是不会把积木让出去的哟~  盾神看到这么和...

2020-04-09 20:04:37 408

原创 快慢指针之链表倒数第K个结点

题目描述实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。示例:输入: 1->2->3->4->5 和 k = 2输出: 4解题思路快慢指针是解决这类问题的经典算法,如求链表的中间节点等问题,都可以用到这个思想我们定义两个指针fast和slow,初始指向链表的头结点先让快指针fast先走k步,然后再让两指针同步走直到快指针为空(走出了链表...

2020-04-04 17:31:19 251

原创 试题 算法训练 相邻数对

问题描述给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。输入格式输入的第一行包含一个整数n,表示给定整数的个数。  第二行包含所给定的n个整数。输出格式输出一个整数,表示值正好相差1的数对的个数。  样例输入610 2 6 3 7 8样例输出3样例说明  值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。评测用例规模与约定  1&l...

2020-04-03 22:26:41 728

原创 LeetCode 409. 最长回文串

题目描述给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解题思路对于一个回文串,如果长度为偶数时,那么所有的...

2020-03-19 11:11:01 101

原创 863.矩形重叠

问题描述矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:true示例 2:输入:...

2020-03-18 22:03:53 85

原创 LeeetCode442. 数组中重复的数据(巧用负号标记数组)

问题描述给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次。找到所有出现两次的元素。你可以不用到任何额外空间并在O(n)时间复杂度内解决这个问题吗?示例:输入:[4,3,2,7,8,2,3,1]输出:[2,3]思路本题可以用哈希表存储每个元素的出现次数,但题目要求不使用额外的存储空间由题可知,数组中的元素范围为1到...

2020-02-17 14:43:54 220

原创 LeetCode88.合并两个有序数组

问题描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...

2020-02-13 16:21:37 76

原创 LeetCode 26.删除排序数组中的重复项

问题描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例...

2020-02-05 22:23:27 110 1

转载 全排列之JAVA实现

全排列的基本思想是: 把...

2020-02-02 18:03:08 140

原创 算法提高 扶老奶奶过街

一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。五个红领巾各自说话:A :我和E都没有扶老奶奶B :老奶奶是被C和E其中一个扶过大街的C :老奶奶是被我和D其中一个扶过大街的D :B和C都没有扶老奶奶过街E :我没有扶老奶奶已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街?若有多个答案,在一行中输出,编号之间用空格隔开。思路此题...

2020-02-01 14:40:00 288

原创 算法训练 入学考试(0-1背包问题)

问题描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”  如果你是...

2020-02-01 14:07:20 291

原创 算法提高 断案

问题描述  公安人员审问甲、乙、丙、丁四个嫌疑犯,已确知,这四个人当中仅有一人是偷窃者,还知道这四个人的答话,要么完全诚实,要么完全说谎。在回答公安人员的问话中:  甲说:“乙没有偷,是丁偷的。”  乙说:“我没有偷,是丙偷的。”  丙说:“甲没有偷,是乙偷的。”  丁说:“我没有偷,我用的那东西是我家里的。”  请根据上述四人答话,判断谁是偷窃者。  输入格式:无输入。  输出格...

2020-01-31 21:41:25 1001

原创 算法训练 邮票 Java

问题描述给定一个信封,有N(1≤N≤100)个位置可以贴邮票,每个位置只能贴一张邮票。我们现在有M(M<=100)种不同邮资的邮票,面值为X1,X2….Xm分(Xi是整数,1≤Xi≤255),每种都有N张。显然,信封上能贴的邮资最小值是min(X1, X2, …, Xm),最大值是 N*max(X1, X2, …,  Xm)。由所有贴法得到的邮资值可形成一个集合(集合中没有重复数值),要...

2020-01-30 23:54:15 845 1

原创 算法训练 6-2递归求二进制表示位数 Java

问题描述  给定一个十进制整数,返回其对应的二进制数的位数。例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。样例输入一个满足题目要求的输入范例。9样例输出与上面的样例输入对应的输出。数据规模和约定  输入数据中每一个数的范围。  例:输入在int表示范围内。思路给定一个数n:n小于2时,二进制数只有1位n大于2时,二进制的位数是n / 2的二进制位数加1...

2020-01-30 16:09:36 648

原创 算法提高 快乐司机(部分背包问题)

问题描述“嘟嘟嘟嘟嘟嘟  喇叭响  我是汽车小司机  我是小司机  我为祖国运输忙  运输忙”  这是儿歌“快乐的小司机”。话说现在当司机光有红心不行,还要多拉快跑。多拉不是超载,是要让所载货物价值最大,特别是在当前油价日新月异的时候。司机所拉货物为散货,如大米、面粉、沙石、泥土…  现在知道了汽车核载重量为w,可供选择的物品的数量n。每个物品的重量为gi,价值为pi。求汽车可装载...

2020-01-28 17:14:11 451

原创 统计单词数 Java

问题描述统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母.输入格式一个包含若干句子的段落, 每个句子由若干英文单词组成. 除空格,  逗号和句号外, 这些输入的句子中不含其他非字母字符, 并且, 逗号和句号紧跟在它前面的英文单词后面, 中间没有空格. 段落最后一个字符是回车符,  ...

2020-01-28 16:09:37 737

原创 算法提高 班级排名

问题描述达达在陶陶的影响下,也对学习慢慢的产生了兴趣。  他在每次考试之后,都会追着老师问,自己在班级的总名次是多少。考试一多,老师也不耐烦了,于是他给了达达所有人的成绩,让他自己去算出自己的排名。  可人太多了,达达也无法立即算出来,于是他想让你帮帮他。输入格式第一行为一个整数N,代表班级的学生总数。  接下来N行,每行一个字符串,代表一个学生的姓名,第一行总是DaDa。  接下来...

2020-01-26 11:09:32 886

原创 算法训练 奥运会开幕式 Java

问题描述学校给高一(三)班分配了一个名额,去参加奥运会的开幕式。每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同学)围成一圈,按照顺时针方向进行编号。然后随便选定一个数m,并且从1号同学开始按照顺时针方向依次报数,1, 2, …, m,凡报到m的同学,都要主动退出圈子。然后不停地按顺时针方向逐一让报出m者出圈,最后剩下的那个人就是去参加开幕式的人。 ...

2020-01-23 20:30:42 782

原创 动态规划之最长上升子序列

问题描述最长上升子序列(Longest Increasing Subsequence,LIS),在计算机科学上是指一个序列中最长的单调递增的子序列。例如:1,7,3,5,9,4,8的最长上升子序列为1,3,5,91,3,5,81,3,4,8求一个序列的最长上升子序列的长度思路解法一:动态规划(O(n^2))dp[i]表示以array[i]结尾的最长上升子序列的长度dp...

2020-01-23 13:21:31 750

原创 算法训练 摆动序列 Java

问题描述如果一个序列满足下面的性质,我们就将它称为摆动序列:  1. 序列中的所有数都是不大于k的正整数;  2. 序列中至少有两个数。  3. 序列中的数两两不相等;  4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i – 2个数小,则第i个数比第i – 2个数大。  比如,当k = 3时,有下面几个这样的序列:  1 2...

2020-01-18 00:33:04 1031

原创 算法训练 瓷砖铺放 Java

问题描述有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?  例如,长度为4的地面一共有如下5种铺法:  4=1+1+1+1  4=2+1+1  4=1+2+1  4=1+1+2  4=2+2  编程用递归的方法求解上述问题。输入格式只有一个数N,代表地板的长度输出...

2020-01-17 22:46:59 975

原创 动态规划之0-1背包问题

问题描述某商店有n个重量为Wi的物品,价值为Vi,小偷的背包最大可容纳重为M的物品,问小偷应该偷那些物品能够使得偷的的东西价值最高。因为对于每个物品只有选和不选两种情况,所以这个问题称为0-1背包问题例题:商店有商品如下表,小偷的背包可装的重量为20先来看一下公式例如B(1,2)表示在0号和1号商品中选择,此时背包容量为2,能获得的最大价值本题要求的则是B(4,20),过程如下...

2020-01-16 12:57:40 488

原创 算法训练数据交换 Java

问题描述编写一个程序,输入两个整数,分别存放在变量x和y当中,然后使用自己定义的函数swap来交换这两个变量的值。  输入格式:输入只有一行,包括两个整数。  输出格式:输出只有一行,也是两个整数,即交换以后的结果。要求主函数负责数据的输入与输出,但不能直接交换这两个变量的值,必须通过调用单独定义的函数swap来完成,而swap函数只负责交换变量的值,不能输出交换后的结果。输入输出样例...

2020-01-14 21:51:35 641

原创 算法训练 纪念品分组 Java

问题描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值 相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时 间内发完所有纪念品,乐乐希望分组的数目最少。  你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入格式输入包含...

2020-01-14 16:46:02 587 1

原创 贪心算法之区间调度问题

问题描述有n项工作,每项工作分别在si时间开始,在ti时间结束对于每项工作,可以参与也可以不参与,如果参与必须全程参与,不能中途退出此外,参与工作的时间不能重叠如何才能参与尽可能多的工作,能参与多少项工作输入:第一行:整数n,代表工作数第二行:n个整数,代表每项工作的开始时间第三行:n个整数,代表每项工作的结束时间样例输入:51 2 4 6 83 5 7 9 10样例输出...

2020-01-14 15:56:33 711

原创 贪心算法之找硬币问题

问题描述有1元,5元,10元,50元,100元,500元的硬币现要用这些面额的硬币支付A元,最大需要多少枚硬币本题假设至少有一种方案输入:第一行输入六个数字,分别代表六种面值硬币的数量第二行输入一个整数A,代表需要支付的金额样例输入3 2 1 3 0 2620样例输出6思路贪心算法即遵循某种规律,(贪心地)选择当前最有的解,最终找到最优解此题使用贪心算法,即每次都...

2020-01-14 15:40:47 2164

原创 Java实现素数环问题

问题描述输入正整数n,对1 - n进行排列,使得相邻两个数之和均为素数输出从1开始,逆时针排列,同一个环恰好输出一次样例输入6样例输出1 4 3 2 5 61 6 5 2 3 4思路此题和八皇后问题类似,采用深度优先搜索的思想用一维数组存储结果,首元素定为1定义整数k,表示搜索的层数(第k个数应填入哪个数),递归地搜索下一层,直到k=n则表示一种排列方法代码...

2020-01-13 23:45:53 947

原创 Java实现n皇后问题

问题描述简单来说,n皇后问题是在一个N * N的棋盘上放置n个皇后, 且保证每一行每一列,每一条对角线(正反对角线)都只有一个皇后。求有多少种方法摆放方法。思路这里采用深度优先搜索的思想用一个一维数组rec存储摆放的结果,数组下标表示行数,元素的值表示在该行的此列摆放了皇后判断一个位置是否能够摆放皇后,就看他的此行此列和对角线是否已摆放过皇后,即数组rec中如果 有元素的值为col,即...

2020-01-13 16:28:09 391

原创 蓝桥杯 FJ的字符串 Java

问题描述FJ在沙盘上写了这样一些字符串:  A1 = “A”  A2 = “ABA”  A3 = “ABACABA”  A4 = “ABACABADABACABA”  … …  你能找出其中的规律并写所有的数列AN吗?输入格式仅有一个数:N ≤ 26。输出格式请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。样例输入3样例输出ABACA...

2019-12-25 16:15:43 498

原创 算法提高 我们的征途是星辰大海

最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成。  共有四种方格:  ‘.’ 代表空地,curiosity可以穿过它  ‘#’ 代表障碍物,不可穿越,不可停留  ‘S’ 代表curiosity的起始位置  ‘T’ 代表curiosity的目的地  NASA将会发送一系列的命令给curiosity,格式如下:“LRUD”分别代表向左,向右,向上,向下走...

2019-12-24 20:28:50 365

原创 机器人走方格(初识递归和动态规划)

题目有一个X * Y的网格,机器人只能走方格而且每一步只能向右或向下走求机器人从左上角走到右下角一共有多少种走法思路如图是一个3 * 3的网格,机器人从左上角出发,向右走则以后要走的是3 * 2的网格,往下走则以后要走的是2 * 3方格的方格由此可得递推公式为:f(x, y) = f(x, y - 1) + f(x - 1, y)当网格只有一行或者一列时,只有一种走法则递归的出口为x...

2019-12-24 09:16:44 1063

原创 算法提高 素数求和(筛选法求素数)

问题描述输入一个自然数n,求小于等于n的素数之和样例输入2样例输出2数据规模和约定测试样例保证 2 <= n <= 2,000,000思路这道题要注意数据规模,n的最大值为2000000,如果用测试法判断每一个数的能否被它的因子整除会超时这里用筛选法求素数:i从2开始,把i的所有倍数都筛选掉,最后剩下的都是素数代码import java.util.Scanne...

2019-12-23 20:45:42 535 1

原创 算法训练 连续正整数的和

问题描述78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。  输入一个正整数 n(<=10000)  输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+…+b=n。  对于多种表示法,a小的方案先输出。样例输入78样例输出1 1218 2125 27思路根据公差为1的等差数列前n项公式Sn = n * ...

2019-12-22 21:41:32 320

原创 Java实现表达式计算

问题描述输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。输入格式输入一行,包含一个表达式。输出格式输出这个表达式的值。样例输入1-2+3*(4-5)样例输出-4数据规模和约定表达式长度不超过100,表达式运算合法且运算过程都在int内进行。思路简单中缀表达式计算: 创建一个运算符栈和操作数栈 从左到右扫描表达式: 扫描到...

2019-12-19 17:22:27 2332

原创 算法训练 寂寞的数

问题描述道德经曰:一生二,二生三,三生万物。  对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和。例如,d(23)=23+2+3=28, d(1481)=1481+1+4+8+1=1495。  因此,给定了任意一个n作为起点,你可以构造如下一个递增序列:n,d(n),d(d(n)),d(d(d(n)))…例如,从33开始的递增序列为:  33, 39, 51, 57, ...

2019-12-17 15:12:41 332

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除