- 博客(65)
- 收藏
- 关注
转载 力扣(LeetCode) 8.字符串转换整数 (atoi) java
8.字符串转换整数 (atoi)(中等)题目如下:请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
2021-03-21 12:12:59
186
原创 力扣(LeetCode) 7.整数反转 java
7.整数反转(简单)题目如下:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:−231 <= x <= 231
2021-03-21 12:11:47
242
原创 力扣(LeetCode) 6.Z字形变换 java
6.Z字形变换(中等)题目如下:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows)
2021-03-21 12:11:04
281
原创 力扣(LeetCode) 5.最长回文子串 java
5.最长回文子串(中等)题目如下:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成回文的定义大家都知道了,这题说的也很明确了。就
2021-03-14 12:05:41
233
原创 力扣(LeetCode) 4.寻找两个正序数组的中位数 java
4.寻找两个正序数组的中位数(困难)题目如下:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示
2021-03-14 12:05:09
239
原创 力扣(LeetCode) 3.无重复字符的最长子串 java
3.无重复字符的最长子串(中等)题目如下:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案
2021-03-14 12:04:21
245
原创 力扣(LeetCode) 2.两数相加 java
2.两数相加(中等)题目如下:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9
2021-03-03 21:33:51
273
2
原创 力扣(LeetCode) 1.两数之和 java
1.两数之和 (简单)题目如下:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], tar
2021-03-03 21:32:11
230
1
原创 蓝桥杯 历届试题 拉马车 java
Prev43 历届试题 拉马车题目如下:问题描述: 小的时候,你玩过纸牌游戏吗? 有一种叫做“拉马车”的游戏,规则很简单,却很吸引小朋友。 其规则简述如下: 假设参加游戏的小朋友是A和B,游戏开始的时候,他们得到的随机的纸牌序列如下: A方:[K, 8, X, K, A, 2, A, 9, 5, A] B方:[2, 7, K, 5, J, 5, Q, 6, K, 4] 其中的X表示“10”,我们忽略了纸牌的花色。 从A方开始,A、B双方轮流出牌。 当
2021-02-25 15:36:08
226
原创 蓝桥杯 历届试题 九宫幻方 java
Prev28 历届试题 九宫幻方题目如下:挺简单的一道dfs了。主要注意一下,当递归到小明没有抹去的数时,直接跳过,递归到小明抹去的数时才进行深搜。源码和注释如下,不多说了。/** * @Description: 历届试题 九宫幻方 * @ClassName: Prev42 * @author: fan.yang * @date: 2020/09/25 14:35 */public class Prev42 { //存九个数的 用一维数组来代替3 X 3的 方便点 p
2021-02-25 15:35:28
358
原创 蓝桥杯 历届试题 Excel地址 java
Prev41 历届试题 Excel地址题目如下:这道题目其实让我挺难忘的,因为我在参加第十届的时候就碰到了这个题,当时是道填空题。庆幸的是参加比赛前做了这道题目没啥好说的,这题其实让人很有用进制做的想法,但这个又不能当成26进制来写,有些点说不通的,所以我就还是暴力模拟了代码和注释如下:import java.util.Scanner;/** * @Description: 历届试题 Excel地址 * @ClassName: Prev41 * @author: fan.yang *
2021-02-25 15:34:40
184
原创 蓝桥杯 历届试题 分巧克力 java
Prev 历届试题 分巧克力题目如下:这道题是道简单的贪心题,因为要求切出的巧克力要尽可能大首先我们要知道怎么在一个长方形的巧克力里切出正方形的巧克力,并且能切出的最大面积的正方形的巧克力取决于什么1.像例子里说一块6x5的巧克力能切出6块2x2的巧克力,这个算法很简单,就是(6 / 2) x (5 / 2) = 3 x 2 = 6。将长方形的长宽分别除以想切出的正方形的边长,得到的值相乘就是答案2.那一个长方形能切出来最大的正方形的边长是多少?这个值就是min(长,宽)。比如一个1 x 10的
2021-02-25 15:33:37
348
原创 蓝桥杯 历届试题 地宫取宝(记忆化搜索) java
Prev28 历届试题 地宫取宝题目如下:这种走地图的题一般都是dfs和bfs,而根据题目所说要求不同的行动方案的数量(能走的路径条数)其实就是dfs了。这种感觉就像普通的dfs一样,大不了就剪枝呗,所以我刚开始是直接把模板按上去写,还写了3个剪枝的过程,然而只过了三组…mdzz先看只过三组数组的代码是怎么写的,注释很全import java.util.Scanner;/** * @Description: 历届试题 地宫取宝 * @ClassName: Prev28 * @auth
2020-09-22 11:58:25
213
原创 蓝桥杯 历届试题 蚂蚁感冒 java
Prev27 历届试题 蚂蚁感冒题目如下:这题我是直接暴力模拟的,注意一下特殊情况即可,注释很详细,直接上代码package prev;import java.util.*;/** * @Description: 历届试题 蚂蚁感冒 * @ClassName: Prev27 * @author: fan.yang * @date: 2020/09/18 15:55 */public class Prev27 { public static void main(String
2020-09-21 16:00:17
194
原创 蓝桥杯 历届试题 幸运数 java
Prev10 历届试题 幸运数题目如下:这题我看了挺久的,想来想去还是决定来一发暴力模拟,然后就过了…讲道理蓝桥这数据确实水,n最大可以到1000000的,我测了一下1到1000000的,然后远远超出了1s。哎,水杯还是有道理的(滑稽)然后我自己又用链表来试了一下,其实还是差不多的,虽然链表删除很方便,但这块也是需要时间的,所以还是超时。看了网上很多的题解,没一个1到1000000能1秒内的。看了过程,虽然有很多用集合和dfs写的,但本质还是暴力出来的。所以哪位大哥有好想法可以说一下packa
2020-09-21 15:59:31
219
原创 蓝桥杯 历届试题 连号区间数 java
Prev7 历届试题 连号区间数题目如下:这题首先思考下暴力解决,我们要截取所有子数组,然后再给排个序,然后再看下是不是连续…这么做估计只能过一半的评测数据你可以看下数组最大能到50000,你截取子数组用个双层循环不过分吧,再加上排序和判断连续,必然超时所以我们要考虑把上面哪部分砍掉来节省时间,截子数组砍不了,那只能从排序和判断连续下功夫。那我们这有没有必要排序呢?其实是没有的,注意题目里说的"在1~N的某个全排列",这个全排列代表这个数组里的每个数只存在一个,就是1,2,3,4…n这个意思,只是
2020-09-11 17:37:59
167
原创 蓝桥杯 历届试题 错误票据 java
Prev4 历届试题 错误票据题目如下:这题说了一大堆,其实就是一道水题解题思路就是从输入的字符串中把数字提取出来,然后排个序,找一下断号和重号的就行代码如下package prev;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Scanner;import java.util.stream.Collectors;/** * @Descripti
2020-09-04 14:56:54
414
原创 蓝桥杯 历届试题 打印十字图 java
Prev2 历届试题 打印十字图题目如下:这个题目太长了,直接看输入输出吧,其实就是找规律打印图像,虽然这种题目看起来挺简单的,但找不到规律还是有些头疼的。这个图像的规律就是他是一个中心对称图形,我们只需要完成一部分的打印,就可以通过对称性来快速完成我这里选择以左上角为主来打印,这样看是不是好打多了,其实就是几条线,只是会拐弯,这个规律很好找的..$$$$$$$..........$..............$$$.$$$$$........$...$............$.$$$.
2020-09-03 16:31:02
195
原创 蓝桥杯 历届试题 剪格子 java
Prev4 历届试题 剪格子题目如下:这道题看似挺简单,能看出就是用dfs来搜索的,而且通过"包含左上角的分割区"这句话可以得知此次dfs应该以左上角为起点而且可以从描述得到,我们搜索格子的结束标志就是搜索到的格子的权值等于所有格子权值的一半那么就好写了,还要注意的就是我们搜索到的那一部分肯定是一部分的,但我们把这部分去掉之后,剩下的格子是不是还只有一部分?这是需要判断其的连通性的。但其实这道题数据很水,才三组,所以你不考虑这个也能过,但还是严谨点比较好,有同学想练连通性的题的话可以练第九届的全球
2020-08-24 17:38:48
291
原创 蓝桥杯 历届试题 带分数 java
Prev3 历届试题 带分数题目如下:这题是一道很典型的dfs了,并且是稍微带点剪枝的这题其实dfs的过程就算得到一个全排列,将全排列得到的各种组合分割成三个数来进行判断。总体还是简单的,注意要剪枝,不然会超时说几种需要剪枝的情况,假设三个数分别是x,y,z,然后当前排列组合情况是123456789,n是100x没必要从1,12,123一直取到1234567,从123之后开始都是没必要的,所以需要剪掉,只考虑到与n相同位数的123为止即可y和z的取值也是需要考虑的,比如x取1,那么剩下的23
2020-08-24 12:05:10
259
原创 蓝桥杯 算法提高 最大乘积 java
Adv15 算法提高 最大乘积题目如下:这种类型的题不是贪心就是dp,这题呢其实贪心即可。首先给那n个数排个序,然后从两端开始各取两个数相乘比较大小(因为右边那段如果是负数,两个负数相乘可能会很大,所以需要判断一下)直接上代码import java.util.Arrays;import java.util.Scanner;/** * @Description: 算法提高 最大乘积 * @ClassName: Adv15 * @author: fan.yang * @date: 202
2020-08-20 14:44:29
218
原创 蓝桥杯 算法提高 判断名次 java
Adv141 算法提高 判断名次题目如下:这道题的主要的点不在于怎么判断出排名这个过程,判断排名其实就是模拟一下,并不难。主要是全排列问题,什么叫全排列呢,就是类似给你A,B,C,D,E这个5个字母,你把这5个字母所有可能的排列方式都求出来。ABCDE,ABCED,ABDCE…一共120种。有些人会用5层循环来排列出来,但讲道理如果给你的字母几十个你怎么办?我这里采用了常见的dfs去递归回溯来解决。对于dfs不是很清楚的建议先学习一波,讲道理蓝桥最喜欢考dfs了,每届都考package adv;
2020-08-19 20:58:58
379
原创 蓝桥杯 算法提高 扶老奶奶过街 java
Adv143 算法提高 扶老奶奶过街题目如下:这题目直接是定死的,所以刚开始感觉没意思,想跳过。但这道题也不是一道水题,不是一想就出来的。打算暴力模拟一波,那要怎么模拟呢?其实这题可以倒推一下即可,我就写个循环,分别假设是A,B,C…扶的老奶奶,然后一一判断他们五个说的,只要有2个能对上就是一组正确答案,直接看代码,很简单的。public class Adv143 { public static void main(String[] args) { //定义个数组 1代
2020-08-17 11:58:44
243
原创 蓝桥杯 算法提高 学霸的迷宫 java
Adv147 算法提高 学霸的迷宫题目如下:这道题是经典的bfs,对这个不太理解的建议学习下,挺简单的其他的都是跟模板差不多的,求路径的时候我是把到这个格子的方向存了起来,最后再从出口那个格子往前迭代拼接起完整的路径,具体的可以看代码,都是有注释的。当然我这方法还是麻烦了,完全可以从刚开始就存路径,存方向最后还要自己拼一下,建议你们可以这样做。package adv;import java.util.ArrayList;import java.util.List;import java.
2020-08-17 10:55:05
252
原创 蓝桥杯 算法提高 快乐司机 java
Adv167 算法提高 快乐司机题目如下:看题意就知道是简单贪心,想要汽车装的东西的价值最大,那就要优先把价值最大的物品装进去。那怎么算出物品的价值啊,题目提供了物品的重量和价值,我们可以用价值除重量来得到物品的单价,然后以此将物品排个序,优先装单价高的即可还好这题能将一个物品拆出来一部分,如果不能拆就要用dp了。直接上代码package adv;import java.util.Arrays;import java.util.Scanner;/** * @Description:
2020-08-05 15:04:40
271
原创 蓝桥杯 算法提高 盾神与条状项链 java
Adv193 算法提高 盾神与条状项链题目如下:这题直接用LinkedList会超时,把Scanner换成输入挂才800ms过,所以可以不用LinkedList,用ArrayList也okpackage adv;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Linked
2020-07-31 15:26:17
171
原创 蓝桥杯 算法提高 队列操作 java
Adv233 算法提高 队列操作题目如下本来像这种水题是不想写了的,但想想还是写了,对于没接触过队列的还是建议可以写一下的package adv;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;/** * @Description: 算法提高 队列操作 * @ClassName: Adv233 * @author: fan.yang * @date: 2020/07/31 11
2020-07-31 15:24:47
185
原创 蓝桥杯 算法训练 操作格子 java
Algo8 算法训练 操作格子题目如下:这题其实已经有提示用线段树了,如果纯暴力模拟的话是不可能,看看数据规模就知道了。至于啥是线段树,建议看一下这个线段树入门的:https://blog.youkuaiyun.com/qq_39826163/article/details/81436440非常好懂,建议先看完上述博客再写题。知道什么是线段树就好办了,其实这道题就是一道线段树模板题,都是些区间求和,单点修改的基本操作,取最大值其实类似区间求和的当然,这里要说一下蓝桥杯哦,你像hdu这种java都是给2s的
2020-07-29 21:32:00
310
原创 蓝桥杯 算法提高 8-1因式分解 java
Adv223 算法提高 8-1因式分解题目如下:题目很清楚,就是把一个数进行分解,并且每个数要求是素数,代码和注释如下package adv;import java.util.Scanner;/** * @Description: 算法提高 8-1因式分解 * @ClassName: Adv223 * @author: fan.yang * @date: 2020/07/27 17:11 */public class Adv223 { public static voi
2020-07-27 19:43:39
216
原创 蓝桥杯 算法训练 最大最小公倍数 java
Algo2 算法训练 最大最小公倍数题目如下:这题虽然蓝桥提示用贪心做,但其实没必要, 这想想就出来了。毕竟只选3个数先将n分为偶数和奇数两种情况,奇数的话例如9,那最大就是9 * 8 * 7。这3个数互质,没问题的。公式是n * (n - 1) * (n - 2)如果n是偶数那就不简单了,比如n是8,那最大是8 * 7 * 6吗?显然不是,8和6还能约个2呢。那就不能取6,所以往下再取个奇数,8 * 7 * 5才是最大的,公式就是n * (n - 1) * (n - 3)如果你偶数就分了上述一
2020-07-26 11:16:04
249
原创 蓝桥杯 算法训练 区间k大数查询 java
Algo1 算法训练 区间k大数查询题目如下:这题没啥说头,也只能暴力点解决,就是取子数组,然后排序,最后按要求取数package algo;import java.util.Arrays;import java.util.Scanner;/** * @Description: 算法训练 区间k大数查询 * @ClassName: Algo1 * @author: fan.yang * @date: 2020/07/24 17:21 */public class Algo1 {
2020-07-25 16:46:20
187
原创 蓝桥杯 算法训练 关联矩阵 java
Algo48 算法训练 关联矩阵题目如下:这题虽然开头跟你扯图,但其实就一道简单的数组运用题,水水更健康吗但这里我就要说了,蓝桥真***,这道题评测的结果的格式有被改过,之前能够的估计现在都过不了。格式真的恶心的死死的,而且这个题目里是没说的,你就算按照样例输出的格式写也是有问题的所以说,你至少要错一遍才能做对,而且如果不仔细研究可能会错更多次。虽然格式在算法题中是很严格,但你**要说啊,fuckpackage algo;import java.util.Scanner;/** * @
2020-07-24 17:11:29
266
原创 蓝桥杯 算法训练 Torry的困惑(基本型) java
Algo51 算法训练 Torry的困惑(基本型)题目如下:这题其实就是质数(素数)的运用,之前已经做过素数的判断了,这里就直接暴力解决就好了,所以没啥好说的。注意一点,如果有多组的话建议打个素数表。在这里还是要吐槽下蓝桥杯的评测数据,太水了,就一个,还只是个8。不过我自己测了下,100000也能1s内结束代码如下package algo;import java.util.Scanner;/** * @Description: 算法训练 Torry的困惑(基本型) * @ClassN
2020-07-23 21:03:11
223
原创 蓝桥杯 算法训练 大等于n的最小完全平方数 java
Algo201 算法训练 大等于n的最小完全平方数题目如下:完全平方数简单说就是这个数开平方后是整数这题有几个坑点哦,注意数据规模和约定,n是32位有符号整数那n可能是负数,负数直接返回0就行。n可能很大,就是int的最大值那么大,所以不要用循环,还要用long代码如下package algo;import java.util.Scanner;/** * @Description: 算法训练 大等于n的最小完全平方数 * @ClassName: Algo201 * @author
2020-07-23 21:02:11
238
原创 蓝桥杯 算法训练 二进制数数 java
Algo202 算法训练 二进制数数二进制数数和1的个数那题基本一样,不多说了,题目和代码如下package algo;import java.util.Scanner;/** * @Description: 算法训练 二进制数数 * @ClassName: Algo202 * @author: fan.yang * @date: 2020/07/23 10:13 */public class Algo202 { public static void main(Strin
2020-07-23 21:00:01
204
原创 蓝桥杯 算法训练 1的个数 java
Algo195 算法训练 1的个数题目如下:这题很简单,摆明了让你暴力。但暴力也分麻烦不麻烦。我这里就选择把所有数拼接成一个字符串,最后一行算出1的个数package algo;import java.util.Scanner;/** * @Description: 算法训练 1的个数 * @ClassName: Algo195 * @author: fan.yang * @date: 2020/07/23 09:27 */public class Algo195 {
2020-07-23 20:57:19
282
1
原创 蓝桥杯 算法训练 最小乘积(基本型) java
Algo53 算法训练 最小乘积(基本型)题目如下:这道题其实也没啥,题目都说是基本型了,往难了搞不是贪心就是dp。这题只要想想怎么能最小就行,其实很简单,一共两组数,把两组排个序,然后将这两组首尾相乘就是最小。排完序后的首尾就是最小值和最大值,这两者相乘是最小的。仔细想想就知道了水水更健康import java.util.Arrays;import java.util.Scanner;/** * @Description: 算法训练 最小乘积(基本型) * @ClassName: A
2020-07-22 18:04:13
262
原创 蓝桥杯 算法训练 字串统计 java
Algo89 算法训练 字串统计题目如下:这题也没啥好说的,直接暴力枚举就行,有一个点要注意,就是描述中“不同的出现可以相交”,这点下面举例说明比如样例的4 bbaabbaaaaa 第一个子串是截取父串的0 - 3 bbaa,第二个子串就是截取的1 - 4 baab。这两个子串就要相交的地方直接上代码 有注释package algo;import java.util.Scanner;/** * @Description: 算法训练 字串统计 * @ClassName: Algo89
2020-07-21 19:43:43
310
原创 蓝桥杯 算法训练 出现次数最多的整数 java
Algo90 算法训练 出现次数最多的整数题目如下:这题也没啥好说的,挺基础的题,本来想在输入这些数的循环里就搞掉的,但不太行。然后这题还有一坑,就是n可能小于等于0,这时候直接结束程序即可。不过多写个循环就够了,时间复杂度O(n),具体代码如下,有注释package algo;import java.util.Scanner;/** * @Description: 算法训练 出现次数最多的整数 * @ClassName: Algo90 * @author: fan.yang *
2020-07-21 19:42:36
255
原创 蓝桥杯 算法训练 Anagrams问题 java
Algo91 算法训练 Anagrams问题题目如下:这道题其实就是给你两个单词,判断这两个单词里的每个字母出现的次数是否一样,而且单词最不超过80,你想怎么暴力怎么暴力,但暴力也要有美感直接上代码,有注释package algo;import java.util.Arrays;import java.util.Scanner;/** * @Description: 算法训练 Anagrams问题 * @ClassName: Algo91 * @author: fan.yang
2020-07-20 21:37:06
218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人