- 博客(23)
- 收藏
- 关注
原创 核桃的数量
问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个正整数,表示每袋核桃的数量。样例输入12 4 5样例输出120样例输入23 1 1样例输出23思路:
2021-03-13 09:25:50
126
原创 带分数
**问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714。 还可以表示为:100 = 82 + 3546 / 197。 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 输入格式 从标准输入读入一个正整数N (N<1000*1000) 输出格式 程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。 注意:不要求输出每个表示,只统计有多少表示法!**样例输入1100样例输出111样
2021-03-13 09:13:55
367
原创 稀疏数组(笔记)
一、稀疏数组介绍:如果一个数组存在多个无用值(即有多个0,或者多个同值)的数组,这个时候原来的数组就显得冗余便可以使用稀疏数组来保存该数组。左图为存在多个无意义值的二维数组,右图是在左图的二维数组的基础上转化的稀疏数组。(PS:图片素材来自尚硅谷数据结构与算法课程的视频截图)二、两种数组的转化方式:1)、二维数组转稀疏数组:1、遍历二维数组,得到二维数组中有效数据的个数sum2、根据sum就可以创建稀疏数组sparseArr = int[sum+1][3]3、将二维数组中的有效数据存入稀疏数
2021-03-08 22:30:31
107
原创 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。这道题可以利用Set集合的唯一性来找突破口代码:import java.util.HashSet;import java.util.Scanner;public class Text01 { public static void main(String[] args) { char[] arr = new Scanner(System.in).nextLine().toCharArray(); int Max = 0;
2021-01-29 21:08:48
69
原创 寻找数组的中间索引
给你一个整数数组 nums ,请编写一个能够返回数组"中心索引"的方法。数组中心索引是数组的一个索引,其左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,返回-1如果数组有多个中心索引,应该返回最靠近左边的那一个。注意:中心索引可能出现在数组的两端。这道题的思路比较简单,就是计算前i个数的和是否等于i后面的数的和。也是第一次接触前缀和的概念,如果没接触这个概念那我写这道题的方法就是用两个int类型的变量分别来存储i以前和i以后的值,然后比较:import java.util.Scan
2021-01-28 19:36:00
443
原创 灵能传输
【题目背景】在游戏《星际争霸II》中,高阶圣堂武士作为星灵的重要AOE单位,在游戏的中后期发挥着重要的作用,其技能”灵能风暴“可以消耗大量的灵能对一片区域内的敌军造成毁灭性的伤害。经常用于对抗人类的生化部队和虫族的刺蛇飞龙等低血量单位。【问题描述】你控制着n名高阶圣堂武士,方便起见标为1,2,… ,n。每名高阶圣堂武士需要一定的灵能来战斗,每个人有一个灵能值a表示其拥有的灵能的多少(a;非负表示这名高阶圣堂武士比在最佳状态下多余了a点灵能,a;为负则表示这名高阶圣堂武士还需要-a;点灵能才能到达最佳战斗状态
2021-01-27 20:20:03
403
2
原创 人物相关性分析
【问题描述】小明正在分析一本小说中的人物相关性。他想知道在小说中Alice 和 Bob有多少次同时出现。更准确的说,小明定义Alice和 Bob“同时出现”的意思是:在小说文本中Alice和 Bob 之间不超过K个字符。例如以下文本:This is a story about Alice and Bob.Alice wants to send a private message to Bob.假设K = 20,则Alice和 Bob 同时出现了2次,分别是”Alice and Bob”和”Bob. Alic
2021-01-25 19:12:21
401
3
原创 后缀表达式
标题【问题描述】给定N个加号、M个减号以及N+M+1个整数A1,A2;… ,AN+M+1,小明想知道在所有由这N个加号、M个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用123+-,则“23+1-”这个后缀表达式结果是4,是最大的。刚看到这道题的时候,我以为这道题很简单,把所有大的数加起来减去所有小的数就是最终答案。因为习惯了中缀表达式,在看到后缀表达式时,不自觉的就会用中缀表达式的想法去解这道题。要解这道题,首先要了解什么是后缀表达式。相比较咱们经
2021-01-24 14:24:24
547
1
原创 外卖店优先级
【问题描述】“饱了么”外卖系统中维护着N家外卖店,编号1 ~N。每家外卖店都有一个优先级,初始时(0时刻)优先级都为0。每经过1个时间单位,如果外卖店没有订单,则优先级会减少1,最低减到0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加2。如果某家外卖店某时刻优先级大于5,则会被系统加入优先缓存中;如果优先级小于等于3,则会被清除出优先缓存。给定T时刻以内的M条订单信息,请你计算T时刻时有多少外卖店在优先缓存中。思路:把店铺的优先度存入数组,用HashSet集合存储店铺的编号减一,根据规定的时间,
2021-01-23 19:43:50
252
原创 特别数的和
【问题描述】小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。请问,在1到n中,所有这样的数的和是多少?【输入格式】输入一行包含两个整数n。【输出格式】输出一行,包含一个整数,表示满足条件的数的和。【样例输入】40【样例输出】574题中要求将1~n中含有2,0,1,9的数字加起来。即把数字转成字符串用字符串的方法判断是否存在,然后累加。代码:import java.util.Scanner;publ
2021-01-22 15:51:21
99
原创 数的分解
【问题描述】把2019 分解成3个各不相同的正整数之和,并且要求每个正整数都不包含数字2和4,一共有多少种不同的分解方法?注意交换3个整数的顺序被视为同一种方法,例如1000+1001+18和1001+1000+18被视为同一种。这道题小学时就已经开始接触,只不过当时数很小,口算就可以得出结果。当面临一个很大的数时,我们也可以计算但是所用的时间就很长。就如这个数2019,首先题中给的要求是分成三个不同的数,且每个整数不能包含2或4。我的思路简单粗暴,用for循环直接找出题中要求下的分解方法但是这样会有重复
2021-01-21 14:19:44
245
原创 数列求值
【问题描述】给定数列1,1,1,3,5,9,17,…,从第4项开始,每项都是前3项的和。求第20190324项的最后4位数字。这个数列首先让我想到斐波那契数列,前两项F(1) = F(2) = 1,从第3项开始F(n) = F(n-1)+F(n-2),题中数列的规律与斐波那契一致只不过题中的数列是前三项F(1) = F(2) = F(3) = 1,从第4项开始F(n) = F(n-1)+F(n-2)+F(n-3)。答案:4659代码:import java.util.Scanner;public
2021-01-20 19:04:17
910
原创 不同子串
【问题描述】一个字符串的非空子串是指字符串中长度至少为1的连续的一段字符组成的串。例如,字符串aaab有非空子串a,b,aa,ab,aaa,aab, aaab,一共7个。注意在计算时,只算本质不同的串的个数。请问,字符串0100110001010001有多少个不同的非空子串?题中要求子串不能有重复,首先想到的便是Set集合,它的特点就是无序,唯一。这里我用的是Set下的HashSet集合。HashSet集合中的添加方法会自动判断集合中是否有重复的数据如果有就不会再向集合中添加。答案:100代码:i
2021-01-19 19:43:06
170
原创 组队
【问题描述】作为篮球队教练,你需要从以下名单中选出1号位至5号位各一名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你计算首发阵容1号位至5号位的评分之和最大可能是多少?要从20个人中选出5个人,而且这五个人的位号不能重复,在写这道题首先要注意每个编号只能使用一次而且每个人的位号各不相同。在这里我是用的递归来实现,为了避免位号重复定义一个int类型的num记录位号,每选择一个成员,下一次递归位号都会加一,直到选择五个为止;为了避免成员重复定义一个boolean类型的数组arr
2021-01-19 18:37:27
106
原创 晚会节目单
【问题描述】小明要组织一台晚会,总共准备了 n 个节目。然后晚会的时间有限,他只能最终选择其中的 m 个节目。这 n 个节目是按照小明设想的顺序给定的,顺序不能改变。小明发现,观众对于晚上的喜欢程度与前几个节目的好看程度有非常大的关系,他希望选出的第一个节目尽可能好看,在此前提下希望第二个节目尽可能好看,依次类推。小明给每个节目定义了一个好看值,请你帮助小明选择出 m 个节目,满足他的要求。【输入格式】输入的第一行包含两个整数 n, m ,表示节目的数量和要选择的数量。第二行包含 n 个整数,依次为每个节目
2021-01-17 22:18:43
238
原创 转换输入样式
转换为蓝桥杯输入样式因为蓝桥杯中的输入样式都是在一行输入多个数据,而我在java学习的过程中用到的格式都是输入一个数据换一次行,所以在这里将统一写出我对于蓝桥杯的输入样式的写法。方法仅供参考,如果后续遇到其他的输入样式会在该文章下更新。代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); St
2021-01-17 22:11:57
106
原创 序列计数
【问题描述】小明想知道,满足以下条件的正整数序列的数量:1. 第一项为 n;2. 第二项不超过 n;3. 从第三项开始,每一项小于前两项的差的绝对值。请计算,对于给定的 n,有多少种满足条件的序列。【输入格式】输入一行包含一个整数 n。【输出格式】输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。【样例输入】4【样例输出】7【样例说明】以下是满足条件的序列:4 14 1 14 1 24 24 2 14 34 4【评测用例规模与约定】对于 20% 的评测用例,1 <= n <=
2021-01-16 22:33:27
293
原创 长草
【问题描述】小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,这四小块空地都将变为有草的小块。请告诉小明,k 个月后空地上哪些地方有草。【输入格式】输入的第一行包含两个整数 n, m。接下来 n 行,每行包含 m 个字母,表示初始的空地状态,字母之间没有空格。如果为小数点,表示为空地,如果字母为 g,表示种
2021-01-15 22:02:55
201
原创 音节判断
【问题描述】小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出no。元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。【输入格式】输入一行,包含一个单词,单词中只包含小写英文字母。【输出格式】输出答案,或者为yes,或者为no。【样例输入】lanqiao【样例输出】y
2021-01-15 18:15:25
238
1
原创 在1至2019中,有多少个数的数位中包含数字9?
在1至2019中,有多少个数的数位中包含数字9?注意,有的数中的数位中包含多个9,这个数只算一次。例如,1999这个数包含数字9,在计算只是算一个数。答:在1至2019中,有544个数的数位中包含数字9。代码解析://在1至2019中,有多少个数的数位中包含数字9?//注意,有的数中的数位中包含多个9,这个数只算一次。//例如,1999这个数包含数字9,在计算只是算一个数。public class text03 { public static void main(String[] args)
2021-01-13 20:53:33
2162
原创 在计算机存储中,15.125GB是多少MB?
在计算机存储中,15.125GB是多少MB?答:在计算机存储中,15.125GB是15488MB代码解析://在计算机存储中,15.125GB是多少MB?public class text02 { public static void main(String[] args) { //GB与MB之间的进制为1024 //1GB = 1024MB double mb = 15.125*1024; System.out.println("在计算机存储中,15.125GB是"+mb+"MB
2021-01-13 20:53:17
1219
原创 1200000有多少个约数(只计算正约数)。
1200000有多少个约数(只计算正约数)。答:1200000有多少个约数(只计算正约数)。代码解析://1200000有多少个约数(只计算正约数)。public class text01 { public static void main(String[] args) { //定义一个int类型的变量来统计1200000约数的个数 int sum = 0; for(int i=1; i<=1200000; i++) { if(1200000%i == 0) { /
2021-01-13 20:52:53
1867
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人