算法比赛
文章平均质量分 50
蓝桥杯、乐扣、csp等
@@老胡
思考与实践并行,努力成为发现和解决问题的人
展开
-
csp非零段划分(结尾有不超时解题,直接跳转看)
题目描述A1,A2,⋯,An 是一个由 n 个自然数(非负整数)组成的数组。我们称其中 Ai,⋯,Aj 是一个非零段,当且仅当以下条件同时满足:1≤i≤j≤n;对于任意的整数 k,若 i≤k≤j,则 Ak>0;i=1 或 Ai−1=0;j=n 或 Aj+1=0。下面展示了几个简单的例子:A=[3,1,2,0,0,2,0,4,5,0,2] 中的 4 个非零段依次为 [3,1,2]、[2]、[4,5] 和 [2];A=[2,3,1,4,5] 仅有 1 个非零段;A=[0,0,0] 则不原创 2021-11-25 23:02:52 · 710 阅读 · 0 评论 -
领域均值java解题【一维前缀和思路】
题目输入输出输出一个整数,表示输入灰度图像中处于较暗区域的像素总数。输入样例14 16 1 60 1 2 34 5 6 78 9 10 1112 13 14 15输出样例17输入样例211 8 2 20 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 7 0 0 0 7 0 0 7 7 07 0 7 0 7 0 7 0 7 0 77 0 0 0 7 0 0 0 7 0 77 0 0 0 0 7 0 0 7 7 07 0 0原创 2021-12-03 16:32:38 · 333 阅读 · 0 评论 -
蓝桥杯 字母图形
//刚好用之前学到的printf的知识,就可以很快的输出了import java.util.*;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int m=sc.nextInt();// int a='0'+17;// System.out.printf("%c",.原创 2021-03-11 16:03:35 · 100 阅读 · 0 评论 -
蓝桥杯 fibonacci数列
package nunber2;import java.util.*;public class Demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[] nums=new int[n+2]; nums[1]=1; nums[2]=1; System.out.println(fi原创 2021-03-09 20:29:00 · 133 阅读 · 0 评论 -
蓝桥杯-十六进制转换八进制
package nunber2;import java.util.Scanner;public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[] res = new String[n]; for (int i = 0; i <原创 2021-03-06 20:44:15 · 107 阅读 · 0 评论 -
蓝桥杯2018 java B组
第几天2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天?package nunber2;import java.util.Calendar;import java.util.Scanner;//2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天?public class Main { public static void main(String[] args) { Scanner sc=new Scanner(原创 2021-03-29 21:52:22 · 268 阅读 · 0 评论 -
蓝桥杯2019 java B组
组队作为篮球队教练,你需要从以下名单中选出1 号位至5 号位各一名球员,组成球队的首发阵容。每位球员担任1 号位至5 号位时的评分如下表所示。请你计算首发阵容1号位至5 号位的评分之和最大可能是多少?先找出每列最大的两个数,然后综合找出最大的5个。答案:490不同的字串一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。注意在计算时,只算本质不同的串的个数。原创 2021-03-28 19:41:19 · 233 阅读 · 0 评论 -
枚举法解决 数的分解
package package2021_11;public class Demo2 { public static void main(String[] args) { int n=2019; int res=0; for (int i = 1; i<=(n/3); i++) { if(!ifTrue(i)) continue; for (int j = i+1; j<=((n-i)/2); j++) { if(!ifTrue(j)) .原创 2021-11-06 23:12:12 · 221 阅读 · 0 评论 -
蓝桥杯-十六进制转十进制
import java.util.*;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String data=sc.next();// System.out.println(); solution(data); } ..原创 2021-03-07 10:33:43 · 153 阅读 · 2 评论 -
蓝桥杯2020 java B组
分配口罩问题描述某市市长获得了若干批口罩,每一批口罩的数目如下:(如果你把以下文字复制到文本文件中,请务必检查复制的内容是否与文档中的一致。在试题目 录下有一文件 mask.txt,内容与下面的文本相同)9090400 8499400 5926800 8547000 4958200 4422600 5751200 41756006309600 5865200 6604400 4635000 10663400 8087200 4554000现在市长要把口罩分配给市内的 2 所医院。由于物流限制,每原创 2021-03-21 21:25:01 · 291 阅读 · 0 评论 -
蓝桥杯 圆-java按照指定位数输出
java按照指定位数输出①%:表示格式说明的起始符号,不可缺少。②-:有-表示左对齐输出,如省略表示右对齐输出(默认是右对齐)。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。没有指定n时,隐含的精度为n=6位。例如:例子的9.2System.out.printf("%9.2f",d);//"9.2"中的9表示输出的长度,2表示小数点后的位数。⑤l或h:l对整型指long型,对实型指dou原创 2021-03-08 20:16:26 · 368 阅读 · 0 评论 -
LeetCode 216. 组合总和 III java
题目:找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]12示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]12解析:相比于前面两道用回溯算法解题的题目:分割回文串和复原IP地址,这道题显得简单一些,并且也是更加典型的回溯解法。可以结转载 2020-09-13 21:19:11 · 329 阅读 · 0 评论 -
2021-07-07&08 力扣 每日一题-使用哈希表解决问题
大餐 是指 恰好包含两道不同餐品 的一餐,其美味程度之和等于 2 的幂。你可以搭配 任意 两道餐品做一顿大餐。给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对 109 + 7 取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。示例 1:输入:deliciousness = [1,3,5,7,9]输出:4解释.原创 2021-07-07 17:38:13 · 156 阅读 · 0 评论 -
2021-07-06 力扣每日一题
给你一个数组 orders,表示客户在餐厅中完成的订单,确切地说, orders[i]=[customerNamei,tableNumberi,foodItemi] ,其中 customerNamei 是客户的姓名,tableNumberi 是客户所在餐桌的桌号,而 foodItemi 是客户点的餐品名称。请你返回该餐厅的 点菜展示表 。在这张表中,表中第一行为标题,其第一列为餐桌桌号 “Table” ,后面每一列都是按字母顺序排列的餐品名称。接下来每一行中的项则表示每张餐桌订购的相应餐品数量,第一列应.原创 2021-07-06 09:52:44 · 219 阅读 · 0 评论 -
LeetCode_1403
package number5;/*先排序再选元素*/import java.util.ArrayList;import java.util.Arrays;import java.util.List;//给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。//如果存在多个解决方案,只需返回 长度最小 的子序列。如果仍然有多个解决方案,则返回 元素之和最大 的子序列。//与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中原创 2020-10-09 17:04:23 · 121 阅读 · 0 评论 -
LeetCode_1282
//有 n 位用户参加活动,他们的 ID 从 0 到 n - 1,每位用户都 恰好 属于某一用户组。//给你一个长度为 n 的数组 groupSizes,其中包含每位用户所处的用户组的大小,//请你返回用户分组情况(存在的用户组以及每个组中用户的 ID)。//你可以任何顺序返回解决方案,ID 的顺序也不受限制。此外,题目给出的数据保证至少存在一种解决方案。//示例 1://输入:groupSizes = [3,3,3,3,3,1,3]//输出:[[5],[0,1,2],[3,4,6]]//解释原创 2020-10-08 10:36:51 · 153 阅读 · 0 评论 -
LeetCode_1221
package number5;//贪心算法import java.util.Stack;//在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。//给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。//返回可以通过分割得到的平衡字符串的最大数量。//示例 1://输入:s = "RLRRLLRLRL"//输出:4//解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。//示例 2://输原创 2020-10-07 23:35:32 · 109 阅读 · 0 评论 -
LeetCode_55
//思路就是:如果当前下标和它对应的数值的和要比数组最后一个数据的下标要大,那么就能到达最远的地方package number5;//给定一个非负整数数组,你最初位于数组的第一个位置。//数组中的每个元素代表你在该位置可以跳跃的最大长度。//判断你是否能够到达最后一个位置。//示例 1://输入: [2,3,1,1,4]//输出: true//解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。//示例 2://输入: [3,2,1,原创 2020-10-07 23:34:07 · 76 阅读 · 0 评论 -
LeetCode_215
package number4;//在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。//示例 1://输入: [3,2,1,5,6,4] 和 k = 2//输出: 5//示例 2://输入: [3,2,3,1,2,4,5,5,6] 和 k = 4//输出: 4//说明://你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。/** * 思路:无论数据怎么变换,排序(降序)后第k大的数据都是在第k-1的位原创 2020-10-04 20:52:10 · 124 阅读 · 0 评论 -
LeetCode_215
package number4;//在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。//示例 1://输入: [3,2,1,5,6,4] 和 k = 2//输出: 5//示例 2://输入: [3,2,3,1,2,4,5,5,6] 和 k = 4//输出: 4//说明://你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。public class Solution5 {public stat原创 2020-10-03 19:34:21 · 65 阅读 · 0 评论 -
LeetCode_169
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2/***求众数,如果一个数q数组的众数,那q一定是这个数组左边或者右边的众数*/private static int moreElement(int[] arr) { return result(arr,0,arr.len原创 2020-10-03 18:16:47 · 92 阅读 · 0 评论 -
LeetCode_53
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。/** * 数学思维:想要得到中间i到j之间的数据,就要用j项和减去i项和 */public static int maxSubArray(int[] nums) { if(nums.length==1) return nums[0];//当数组只有一个原创 2020-10-03 18:12:57 · 81 阅读 · 0 评论