刷题(C语言)
文章平均质量分 76
看博主“算法大师“博客的一点学习记录,推荐专栏:https://blog.csdn.net/banxia_frontend/category_12225173.html
~柠月如风~
往事随风
展开
-
leetcode 1143. 最长公共子序列【动态规划】
给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。原创 2024-03-09 21:41:52 · 641 阅读 · 0 评论 -
leetcode 53. 最大子数组和【滚动数组、动态规划】
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。原创 2024-03-09 21:36:38 · 452 阅读 · 0 评论 -
爱吃蟠桃的孙悟空
孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。孙悟空喜欢慢慢吃,但又想在守卫回来前吃完桃子。请返回孙悟空可以在 H 小时内吃掉所有桃子的最小速度 K(K为整数)。如果以任何速度都吃不完所有桃子,则返回0。# 输入描述第一行输入为 N 个数字,N 表示桃树的数量,原创 2024-02-18 23:47:18 · 1090 阅读 · 0 评论 -
CPU 算力分配(C语言)
现有两组服务器A和B,每组有多个算力不同的CPU,其中 A\[i] 是 A 组第 i 个CPU的运算能力,B\[i] 是 B组 第 i 个CPU的运算能力。一组服务器的总算力是各CPU的算力之和。为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换,求两组服务器中,用于交换的CPU的算力,并且要求从A组服务器中选出的CPU,算力尽可能小。## 输入描述第一行输入为L1和L2,以空格分隔,L1表示A组服务器中的CPU数量,L2表示B组服务器中的CPU数量。第二行输入为A组原创 2024-02-24 20:29:56 · 987 阅读 · 0 评论 -
绘图机器(C 语言)
绘图机器的绘图笔初始位置在原点`(0,0)`\机器启动后按照以下规则来进行绘制直线1. 尝试沿着横线坐标正向绘制直线\ 直到给定的终点`E`2. 期间可以通过指令在纵坐标轴方向进行偏移\ `offsetY`为正数表示正向偏移,为负数表示负向偏移\ 给定的横坐标终点值`E` 以及若干条绘制指令\ 请计算绘制的直线和横坐标轴以及`x = E`的直线组成的图形面积## 输入首行为两个整数`N` 和 `E`\表示有`N`条指令,机器运行的横坐标终点值`E`\接原创 2024-02-24 18:37:31 · 614 阅读 · 0 评论 -
寻找连续区间(C 语言)【数组区间处理】
给定一个含有 `N` 个正整数的数组,\求出有多少个连续区间(包括单个正整数),\它们的和大于等于 `x` 。## 输入第一行两个整数 `N` `x` (`0 < N原创 2024-02-24 17:32:55 · 895 阅读 · 0 评论 -
拼接 URL(C 语言)【字符串处理】
给定一个 url 前缀和 url 后缀\通过,分割 需要将其连接为一个完整的 url\如果前缀结尾和后缀开头都没有/\需要自动补上/连接符\如果前缀结尾和后缀开头都为/\需要自动去重\约束:\不用考虑前后缀 URL 不合法情况## 输入url 前缀(一个长度小于 100 的字符串)\url 后缀(一个长度小于 100 的字符串)## 输出描述拼接后的 url## 示例一原创 2024-02-24 17:16:15 · 537 阅读 · 0 评论 -
小明找位置(C语言)【二分查找】
小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于 `nLog(n)`;学号为整数类型,队列规模原创 2024-02-24 12:49:47 · 1003 阅读 · 0 评论 -
来自异国的客人/幸运数字(C语言)【进制转换】
有位客人来自异国,在该国使用m进制计数。该客人有个幸运数字n(n\原创 2024-02-24 10:43:04 · 1494 阅读 · 0 评论 -
智能成绩表(C语言)
小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?### 输入描述第 1 行输入两个整数,学生人数 n 和科目数量 m,0\原创 2024-02-23 23:22:36 · 717 阅读 · 0 评论 -
悄悄话花费的时间(C语言)【二叉树各结点统计求和】
给定一个二叉树,每个节点上站着一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。\初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。### 输入描述给定二叉树0 9 20 -1 -1 15 7 -1 -1 -1 -1 3 2原创 2024-02-23 22:20:00 · 803 阅读 · 0 评论 -
石头剪刀布游戏(C语言)
石头剪刀布游戏有 3 种出拳形状:石头、剪刀、布。分别用字母 A , B , C 表示。**游戏规则:**出拳形状之间的胜负规则如下: A > B;B > C;C > A;">"左边一个字母,表示相对优势形状。右边一个字母,表示相对劣势形状。\当本场次中有且仅有一种出拳形状优于其它出拳形状,则该形状的玩家是胜利者。否则认为是平局。\当发生平局,没有赢家。有多个胜利者时,同为赢家。* 例如 1: 三个玩家出拳分别是A, B, C ,由于出现三方优势循环(即没有任何一方优于其它出拳者),判断原创 2024-02-23 20:31:56 · 3197 阅读 · 1 评论 -
跳房子 Ⅰ(C语言)
跳房子,也叫跳飞机,是一种世界性的儿童游戏。游戏参与者需要分多个回合按顺序跳到第 1 格直到房子的最后一格。跳房子的过程中,可以向前跳,也可以向后跳。假设房子的总格数是 count,小红每回合可能连续跳的步教都放在数组 steps 中,请问数组中是否有一种步数的组合,可以让小红两个回合跳到量后一格?如果有,请输出索引和最小的步数组合。注意:数组中的步数可以重复,但数组中的元素不能重复使用。提供的数据保证存在满足题目要求的组合,且索引和最小的步数组合是唯一的。## 输入描述第一原创 2024-02-23 16:55:06 · 538 阅读 · 0 评论 -
最大可购买的宝石数量(C语言)【滑动窗口】
橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems\[i]\0 ≤ i < n\n = gems.length\宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续;例如客户最大购买宝石个数为m,购买的宝石编号必须为:gems\[i],gems\[i+1],…,gems\[i+m-1]\0 ≤ i < n\m ≤ n\假设你当前拥有总面值为 value 的钱,请问最多能购买到多少个宝石,如无法购买宝石,则返回0。## 输入描述第一行输入n,参数类型原创 2024-02-23 12:28:48 · 596 阅读 · 0 评论 -
英文输入法(C 语言)
主管期望你来实现英文输入法单词联想功能,需求如下:1. 依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词。2. 按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。注意1. 英文单词联想时区分大小写2. 缩略形式如"don’t" 判定为两个单词 "don"和 “t”3. 输出的单词序列不能有重复单词,且只能是英文单词,不能有标点符号### 输入输入两行\首行输入一段由英文单词`word`和`标点`构成的语句`str`\接下来一行为一原创 2024-02-23 11:43:08 · 960 阅读 · 0 评论 -
玩牌高手(C 语言)
给定一个长度为`N`的整数数组,表示一个选手在`N`轮内选择的牌面分数,\选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。\选择规则如下:1. 在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数为其新的总分数2. 选手也可不选择本轮牌面,直接跳到下一轮,此时将当前总分数还原为 3 轮前的总分数,若当前轮次小于等于 3,则总分数置 03. 选手初始总分数为 0,且必须依次参加每轮## 输入第一行为一个小写`逗号`分隔的字符串\表示`N`轮的牌面分数\`1原创 2024-02-23 00:10:43 · 542 阅读 · 0 评论 -
分班问题 、幼儿园分班(C语言)
幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友同班,请你帮忙把同班的小朋友找出来。* 小朋友的编号是整数,与前一位小朋友同班用Y表示,不同班用N表示。* 学生序号范围(0,999],如果输入不合法则打印ERROR。## 输入描述* 输入为空格分开的小朋友编号和是否同班标志。## 输出描述* 输出为两行,每一行记录一个班小朋友的编号,编号用空格分开,且:* 1.编号需按照升序排列。* 2.若只有一个班的小朋友,第二行为空原创 2024-02-22 23:04:07 · 812 阅读 · 0 评论 -
能力组队 | 求最多可以派出多少支团队(C 语言)【双指针】
用数组代表每个人的能力,一个比赛活动要求,参赛团队的最低能力值为`N`,每个团队可以由一人或者两人组成,且一个人只能参加一个团队,计算出最多可以派出多少只符合要求的队伍。## 输入第一行代表总人数,范围`1 ~ 500000`\第二行数组代表每个人的能力\数组大小范围`1 ~ 500000`\元素取值范围`1 ~ 500000`\第三行数值为团队要求的最低能力值`1 ~ 500000`## 输出最多可以派出的团队数量## 示例一### 输入 5 3 1 5原创 2024-02-22 21:30:15 · 813 阅读 · 0 评论 -
最少停车数(C 语言)
特定大小的停车场,数组cars\[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。统计停车场最少可以停多少辆车,返回具体的数目。## 输入描述整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。## 输出描述整型数字字符串,表示最少停车数目。原创 2024-02-22 18:37:34 · 487 阅读 · 0 评论 -
素数之积/RSA加密算法(C语言)
RSA加密算法在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。## 输入描述一个正整数num,0 < num原创 2024-02-22 16:46:09 · 514 阅读 · 0 评论 -
去重求和(最大N个数和最小N个数的和)(C 语言)
给定一个数组,编写一个函数,\计算他的最大`N`个数和最小`N`个数的和,\需要对数组进行去重。### 输入第一行输入`M`,`M`表示数组大小\第二行输入`M`个数,表示数组内容\第三行输入`N`表示需要计算的最大最小`N`的个数### 输出输出最大`N`个数和最小`N`个数的和### 示例一#### 输入 5 95 88 83 64 100 2#### 输出 342#### 说明最大`2`个数`[100 95]`最小 2 个原创 2024-02-22 16:14:04 · 778 阅读 · 0 评论 -
GPU 调度(C 语言)
为了充分发挥GPU\[算力],需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。## 输入描述* 第一个参数为GPU一次最多执行的任务个数,取值范围\[1, 10000]* 第二个参数为任务数组长度,取值范围\[1, 10000]* 第三个参数为任务数组,数字范围\[1, 10000]## 输出描述执行完所有任原创 2024-02-22 14:46:57 · 713 阅读 · 0 评论 -
机场航班调度(C语言)
XX 市机场停放了多架飞机,每架飞机都有自己的航班号 CA3385,CZ6678,SC6508 等,航班号的前 2 个大写字母(或数字)代表航空公司的缩写,后面 4 个数字代表航班信息。\但是 XX 市机场只有一条[起飞](https://so.csdn.net/so/search?q=%E8%B5%B7%E9%A3%9E\&spm=1001.2101.3001.7020)用跑道,调度人员需要安排目前停留在机场的航班有序起飞。为保障航班的有序起飞,调度员首先按照航空公司的缩写(航班号前 2 个字母)对所有原创 2024-02-22 14:06:53 · 788 阅读 · 0 评论 -
查找接口成功率最优时间段(C语言)
服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为0\~100的整数,给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于minAverageLost,找出数组中最长时间段,如果未找到则直接返回NULL。## 输入描述输入有两行内容,第一行为{minAverageLost},第二行为{数组},数组元素通过空格(” “)分隔,minAverage原创 2024-02-22 11:58:03 · 1240 阅读 · 1 评论 -
字符串变换最小字符串(C语言)
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。## 输入描述一串小写字母组成的字符串s## 输出描述按照要求进行变换得到的最小字符串。## 用例| 输入 | abcdef || :- | :-------------------- || 输出 | abcdef || 说明 | abcdef已经是最小字符串,不需要交换。 |原创 2024-02-21 23:02:49 · 1049 阅读 · 0 评论 -
Family Day/园区参观路径(C语言)
园区某部门举办了Family Day,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。## 输入描述第一行为园原创 2024-02-21 18:46:11 · 784 阅读 · 0 评论 -
按身高和体重排队,运动会(C 语言)
某学校举行运动会,学生们按编号`(1、2、3.....n)`进行标识,\现需要按照身高由低到高排列,\对身高相同的人,按体重由轻到重排列,\对于身高体重都相同的人,维持原有的编号顺序关系。\请输出排列后的学生编号### 输入两个序列,每个序列由N个正整数组成,`(0 < n原创 2024-02-20 23:57:02 · 628 阅读 · 0 评论 -
数组去重和排序(按照出现的次数从高到低进行排序)(C语言)
给定一个乱序的数组,删除所有重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序\相同出现次数按照第一次出现顺序进行先后排序,数组大小不超过`100`,数组元素值不超过`100`## 输入一个数组## 输出去重排序后的数组## 示例一### 输入 1,3,3,3,2,4,4,4,5### 输出 3,4,1,2,5# 思路解题思路:1. **读取输入**:首先通过`fgets`函数读取用户输入的一行整数,以逗号为分隔符。然后使用`s原创 2024-02-20 22:12:17 · 940 阅读 · 1 评论 -
整型数组按个位值排序/最低位排序(C语言)
给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。\当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。## 输入描述* 给定一个非空数组,其元素数据类型为32位有符号整数,数组长度\[1, 1000]## 输出描述* 输出排序后的数组## 用例| 输入 | 1,2,5,-21,22,11,55,-101,42,8,7,32 || :- | :--------------原创 2024-02-20 20:53:54 · 620 阅读 · 0 评论 -
字符串摘要(C语言)
给定一个字符串的摘要算法,请输出给定字符串的摘要值。1. 去除字符串中非字母的符号。2. 如果出现连续字符(不区分大小写),则输出:该字符(小写)+ 连续出现的次数。3. 如果是非连续的字符(不区分大小写),则输出:该字符(小写)+ 该字母之后字符串中出现的该字符的次数。4. 对按照以上方式表示后的字符串进行排序:字母和紧随的数字作为一组进行排序,数字大的在前,数字相同的,则按字母进行排序,字母小的在前。## 输入一行字符串,长度为\[1,200]## 输出摘要字符串#原创 2024-02-20 19:36:27 · 592 阅读 · 0 评论 -
内存冷热标记(C语言)
现代计算机系统中通常存在多级的存储设备,针对海量 workload 的优化的一种思路是将热点内存页优先放到快速存储层级,这就需要对内存页进行冷热标记。一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,否则是冷内存页。对于统计窗口内跟踪到的访存序列和阈值,现在需要实现基于频次的冷热标记。内存页使用页框号作为标识。## 输入描述第一行输入为 `N`,表示访存序列的记录条数,0 < `N` ≤ 10000第二行为访存序列,空格分隔的 `N`原创 2024-02-20 15:00:58 · 890 阅读 · 0 评论 -
剩余银饰的重量(C语言)
有 `N` 块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。 每一回合,从中选出三块 最重的 银饰,然后一起熔掉。假设银饰的重量分别为 `x` 、`y` 和 `z`,且 `x原创 2024-02-20 13:41:26 · 802 阅读 · 0 评论 -
分配土地(C语言)
从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地分配给村里做出巨大贡献的村民,请问此次分配土地,做出贡献的村民种最大会分配多大面积?# 输入描述第一行输入 m 和 n,m 代表村子的土地的长n 代表土地的宽第二行开始输入地图上的具体标识# 输出描述此次分配土地,做出贡献的村民种最大会分配多大面积# 备注旗子上的数字为1~500,土地边长不超过500未插旗子的土地用0标识# 用例1输入```原创 2024-02-20 10:48:11 · 870 阅读 · 0 评论 -
寻找身高相近的小朋友
小明今年升学到了小学1年级来到新班级后,发现其他小朋友身高参差不齐,然后就想基于各小朋友和自己的身高差,对他们进行排序,请帮他实现排序。# 输入描述第一行为正整数 h和n,0原创 2024-02-20 00:07:27 · 497 阅读 · 0 评论 -
考勤信息(用一个字符串来表示员工的出勤信息)
公司用一个字符串来表示员工的出勤信息```cabsent:缺勤late:迟到leaveearly:早退present:正常上班```现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:缺勤不超过一次;没有连续的迟到/早退;任意连续7次考勤,缺勤/迟到/早退不超过3次。# 输入描述用户的考勤数据字符串记录条数 >= 1;输入字符串长度 < 10000;不存在非法输入;如:```c2presentpresent absent present p原创 2024-02-19 23:48:40 · 1338 阅读 · 0 评论 -
开源项目热度榜单
某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。数据库里面统计了每个开源项目关注、收藏、fork、issue、MR的数量,开源项目的热度根据这5个维度的加权求和进行排序。```cH = (Wwatch * #watch) + (Wstar * #star) + (Wfork * #fork) + (Wissue * #issue) + (原创 2024-02-19 22:25:36 · 992 阅读 · 0 评论 -
寻找最富裕的小家庭
在一棵树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。现给你一棵树,请计算出最富裕的小家庭的财富和。# 输入描述第一行为一个数N,表示成员总数,成员编号1-N,1原创 2024-02-19 21:39:16 · 1129 阅读 · 0 评论 -
机器人仓库搬砖
机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损耗最小化尽量减小每次补充的能量格数 为了保障在8小时内能完成搬砖任务,请计算每小时给机器人充能的最小能量格数。1、无需考虑机器人补充能量格的耗时,2、无需考虑机器人搬砖的耗时;3、机器人每小时补充能量格只在这一个小时中有效;# 输入描述第一行原创 2024-02-19 20:35:05 · 912 阅读 · 0 评论 -
分割均衡字符串
均衡串定义: 字符串只包含两种字符,且两种字符的个数相同。给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。约定字符串中只包含大写的X和Y两种字符。# 输入描述均衡串: XXYYXY字符串的长度[2,100001]。给定的字符串均为均衡串# 输出描述可分割为两个子串:XXYYXY# 备注分割后的子串,是原字符串的连续子串。# 用例输入 ```cXXYYXY```输出 ```c2```# 思路初始化计数器变量 `count` 为0,用于统计当前原创 2024-02-19 16:52:16 · 852 阅读 · 0 评论 -
游戏分组/王者荣耀
部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分 5 为两队,每队 5 人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把 10 名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队 5 名队员的评分总和。现在给你 10 名参与者的游戏水平评分,请你根据上述要求分队最后输出这两组的实力差绝对值。例: 10 名参赛者的评分分别为 5 1 8 3 4 6 7 10 9 2,分组为 (1 3 5 8 10) (2 4 6 7 9),两组实力差最小,差值为原创 2024-02-19 16:13:38 · 1082 阅读 · 1 评论
分享