2021寒假蓝桥杯备
CodeCode!
“Stay hungry,stay foolish!”
展开
-
30、Acwing 2021/2/9 425. 明明的随机数
30、Acwing 2021/2/9 425. 明明的随机数明明的随机数明明想在学校中请一些同学一起做一项问卷调查。为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数,对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式输入文件包含2行,第1行为1个正整数,表示所生成的随机数的个数:N 。第2行有N个用空格隔开的正整数,为所产生的原创 2021-02-09 11:03:26 · 125 阅读 · 0 评论 -
30、Acwing 2021/2/8 417. 不高兴的津津
30、Acwing 2021/2/8 417. 不高兴的津津不高兴的津津津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入格式输入文件包括七行数据,分别表示周一到周日的日原创 2021-02-08 21:12:44 · 89 阅读 · 0 评论 -
29、Acwing 2021/2/8 421. 陶陶摘苹果
29、Acwing 2021/2/8 421. 陶陶摘苹果陶陶摘苹果陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。输入格式输入文件包括两行数据。第一行包含10个100到200之间(包括100和200)的整数(以厘原创 2021-02-08 21:05:08 · 60 阅读 · 0 评论 -
28、LeetCode 2021/2/7 665. 非递减数列
28、LeetCode 2021/2/7 665. 非递减数列665. 非递减数列难度简单499给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例原创 2021-02-07 21:53:31 · 58 阅读 · 0 评论 -
27、Acwing 2021/2/5 1101. 献给阿尔吉侬的花束
27、Acwing 2021/2/5 1101. 献给阿尔吉侬的花束献给阿尔吉侬的花束阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。阿尔吉侬在 1原创 2021-02-05 22:36:32 · 262 阅读 · 0 评论 -
26、LeetCode 2021/2/5 1208. 尽可能使字符串相等
26、LeetCode 2021/2/5 1208. 尽可能使字符串相等1208. 尽可能使字符串相等难度中等108收藏分享切换为英文接收动态反馈给你两个长度相同的字符串,s 和 t。将 s 中的第 i 个字符变到 t 中的第 i 个字符需要 |s[i] - t[i]| 的开销(开销可能为 0),也就是两个字符的 ASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 s 的子字符串原创 2021-02-05 22:12:14 · 87 阅读 · 0 评论 -
25、LeetCode 2021/2/4 643. 子数组最大平均数 I
25、LeetCode 2021/2/4 643. 子数组最大平均数 I643. 子数组最大平均数 I难度简单147给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例:输入:[1,12,-5,-6,50,3], k = 4输出:12.75解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75class Solution { public double findMaxAverage(int[] nums, int k) {原创 2021-02-04 11:38:20 · 54 阅读 · 0 评论 -
24、LeetCode 2021/2/2 424. 替换后的最长重复字符
24、LeetCode 2021/2/2 424. 替换后的最长重复字符424. 替换后的最长重复字符难度中等234给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。**注意:**字符串长度 和 k 不会超过 104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k = 1输原创 2021-02-02 20:26:49 · 61 阅读 · 0 评论 -
23、LeetCode 2021/2/1 80. 删除排序数组中的重复项 II
23、LeetCode 2021/2/1 80. 删除排序数组中的重复项 II80. 删除排序数组中的重复项 II难度中等349给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,3]解释:函数应返回新长度 length = 5,原创 2021-02-01 19:30:03 · 71 阅读 · 0 评论 -
22、LeetCode 2021/2/1 888. 公平的糖果棒交换
22、LeetCode 2021/2/1 888. 公平的糖果棒交换888. 公平的糖果棒交换难度简单127爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 根糖果棒的大小,B[j] 是鲍勃拥有的第 j 根糖果棒的大小。因为他们是朋友,所以他们想交换一根糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。如果原创 2021-02-01 19:16:54 · 57 阅读 · 0 评论 -
21、LeetCode 2021/1/31 26. 删除排序数组中的重复项
21、LeetCode 2021/1/31 26. 删除排序数组中的重复项26. 删除排序数组中的重复项难度简单1805给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元原创 2021-01-31 19:47:13 · 62 阅读 · 0 评论 -
20、LeetCode 2021/1/31 27. 移除元素
20、LeetCode 2021/1/31 27. 移除元素27. 移除元素难度简单758给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nu原创 2021-01-31 19:35:07 · 709 阅读 · 0 评论 -
19、Acwing 2021/1/30 482. 合唱队形
19、Acwing 2021/1/30 482. 合唱队形合唱队形N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TKT1,T2,…,TK, 则他们的身高满足T1<…Ti+1>…>TK(1≤i≤K)T1<…Ti+1>…>TK(1≤i≤K)。你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下原创 2021-01-30 15:22:04 · 150 阅读 · 0 评论 -
18、Acwing 2021/1/30 1015. 摘花生
18、Acwing 2021/1/30 1015. 摘花生摘花生Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。输入格式第一行是一个整数T,代表一共有多少组数据。接下来是T组数据。每组数据的第一原创 2021-01-30 15:16:22 · 57 阅读 · 0 评论 -
16、Acwing 2021/1/28 799. 最长连续不重复子序列
16、Acwing 2021/1/28 799. 最长连续不重复子序列最长连续不重复子序列给定一个长度为n的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤1000001≤n≤100000输入样例:51 2 2 3 5输出样例:3import java.util.*;cla原创 2021-01-28 18:35:22 · 79 阅读 · 0 评论 -
15、LeetCode 2021/1/28 283. 移动零
15、LeetCode 2021/1/28 283. 移动零283. 移动零难度简单930给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。方法一:class Solution { public void moveZeroes(int[] nums) { //做为新的下标原创 2021-01-28 10:40:31 · 70 阅读 · 0 评论 -
14、LeetCode 2021/1/28 724. 寻找数组的中心索引
14、LeetCode 2021/1/28 724. 寻找数组的中心索引724. 寻找数组的中心索引难度简单256给定一个整数类型的数组 nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出:3解释:索引 3 (原创 2021-01-28 09:38:39 · 77 阅读 · 0 评论 -
13、Acwing 2021/1/27 1208.翻硬币
13、Acwing 2021/1/27 1208.翻硬币翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:**oo***oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示原创 2021-01-27 13:46:52 · 62 阅读 · 0 评论 -
12、LeetCode 2021/1/26 1128. 等价多米诺骨
12、LeetCode 2021/1/26 1128. 等价多米诺骨牌对的数量1128. 等价多米诺骨牌对的数量难度简单64给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,或是 a==d 且 b==c。在 0 <= i < j <原创 2021-01-26 10:31:36 · 65 阅读 · 0 评论 -
11、LeetCode 2021/1/24 674. 最长连续递增序列
11、LeetCode 2021/1/24 674. 最长连续递增序列674. 最长连续递增序列难度简单163给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。示例原创 2021-01-24 21:38:35 · 65 阅读 · 0 评论 -
10、Acwing 2021/1/22 754. 平方矩阵 II
10、Acwing 2021/1/22 754. 平方矩阵 II平方矩阵 II输入整数N,输出一个N阶的二维数组。数组的形式参照样例。输入格式输入包含多行,每行包含一个整数N。当输入行为N=0时,表示输入结束,且该行无需作任何处理。输出格式对于每个输入整数N,输出一个满足要求的N阶二维数组。每个数组占N行,每行包含N个用空格隔开的整数。每个数组输出完毕后,输出一个空行。数据范围0≤N≤1000≤N≤100输入样例:123450输出样例:11 22 1原创 2021-01-22 14:30:00 · 84 阅读 · 0 评论 -
9、Acwing 2021/1/21 1113. 红与黑
9、Acwing 2021/1/21 1113. 红与黑红与黑有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 WW 和 HH,分别表示 xx 方向和 yy 方向瓷砖的数量。在接下来的 HH 行中,每行包括 WW 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘原创 2021-01-21 18:33:05 · 67 阅读 · 0 评论 -
8 、Acwing 2021/1/20 756.蛇形矩阵
8 、Acwing 2021/1/20 756.蛇形矩阵蛇形矩阵输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤1001≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5import java.util.*;public class Main原创 2021-01-20 15:54:31 · 57 阅读 · 0 评论 -
7、Acwing:2021/1/20 898.数字三角形
6、2021/1/20 数字三角形数字三角形给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5输入格式第一行包含整数n,表示数字三角形的层数。接下来n行,每行包含若干整数,其中第 i 行表示数字三角形第 i 层包含的整数。输出格式输出一个原创 2021-01-20 14:13:27 · 96 阅读 · 0 评论 -
6、LeetCode:2021/1/20 三个数的最大乘积
2021/1/20 三个数的最大乘积LeetCode:628. 三个数的最大乘积难度简单240给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24方法一: 暴力class Solution { public int maximumProduct(int[] nums) { //排序 Arrays.sort(nums);原创 2021-01-20 13:57:49 · 161 阅读 · 0 评论 -
5、Acwing 104. 货仓选址
5、2021/1/19 货仓选址货仓选址在一条数轴上有 NN 家商店,它们的坐标分别为 A1A1~ANAN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1A1~ANAN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤1000001≤N≤100000,0≤Ai≤400000≤Ai≤40000输入样例:46 2 9 1输原创 2021-01-19 15:17:21 · 102 阅读 · 1 评论 -
4、Acwing 787.归并排序
4、2021/1/18 归并排序归并排序给你一个长度为n的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在1~109109范围内),表示整个数列。输出格式输出共一行,包含 n 个整数,表示排好序的数列。数据范围1≤n≤1000001≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5解题思路:1.找到区间中点mid2.将[原创 2021-01-19 15:15:06 · 84 阅读 · 0 评论 -
3、Acwing:第k个数
3、2021/1/18 第k个数第k个数给定一长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在1~109109范围内),表示整数数列。输出格式输出一个整数,表示数列的第k小数。数据范围1≤n≤1000001≤n≤100000,1≤k≤n1≤k≤n输入样例:5 32 4 1 5 3输出样例:3难度:简单时/空限制:1s / 64MB原创 2021-01-19 15:14:28 · 164 阅读 · 0 评论 -
2、LeetCode:1232. 缀点成线
2、2021/1/171232. 缀点成线难度简单51在一个 XY 坐标系中有一些点,我们用数组 coordinates 来分别记录它们的坐标,其中 coordinates[i] = [x, y] 表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7UxQ2GB-1610861798717)(2021寒假蓝桥杯.asset原创 2021-01-17 13:37:18 · 155 阅读 · 0 评论 -
LeetCode:面试题 16.19. 水域大小
1、2021/1/16面试题 16.19. 水域大小难度中等40你有一个用于表示一片土地的整数矩阵land,该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小,返回值需要从小到大排序。示例:输入:[ [0,2,1,0], [0,1,0,1], [1,1,0,1], [0,1,0,1]]输出: [1,2,4]提示:0 < len(land) &原创 2021-01-16 16:14:01 · 181 阅读 · 0 评论