- 博客(25)
- 收藏
- 关注
原创 不同整数的计数问题java
该字符串由数字和小写英文字母组成。小R想用空格替换每一个不是数字的字符。然后,他希望统计在替换后剩下的整数中,遍历分割后的字符串数组,将每个非空字符串转换为整数并添加到集合中。按一个或多个空格分割字符串,得到一个字符串数组。的十进制表示不同,才认为它们是不同的整数。的每个字符,如果是数字则追加到。来存储整数,自动去除重复项。方法去除字符串两端的空格。,替换后形成的字符串是。不同的整数有三个,即。注意,只有当两个整数的。,否则追加一个空格。采用如下易于理解方式。
2025-02-17 11:17:09
174
原创 小R的随机播放顺序java(字节青训)
小R有一个特殊的随机播放规则。他首先播放歌单中的第一首歌,播放后将其从歌单中移除。如果歌单中还有歌曲,则会将当前第一首歌移到最后一首。这个过程会一直重复,直到歌单中没有任何歌曲。由于我们需要频繁地进行队列操作(如移除队首元素、将队首元素移到队尾),使用队列(Queue)是一个合适的选择。可以很好地实现队列的功能。
2025-02-16 09:57:13
123
原创 端点石子移动问题java(字节青训)
我们需要找到一个区间,使得在这个区间内包含尽可能多的石子,并且这个区间长度为 n。如果这个区间内包含的石子数量少于 n−1,则我们可以通过移动端点石子来增加区间内的石子数量,直到达到 n−1 个石子。如果这个区间内包含的石子数量等于 n−1,则我们需要考虑不同的情况来确定最小移动次数。值得注意的是,如果石子的位置是连续的,则游戏结束,因为没有可以进行的移动操作。如果当前区间内的石子数量为 n−1,并且区间内的石子位置是连续的,则只需要移动两次。如果某个石子处于最小或最大的一个位置,我们称其为端点石子。
2025-02-14 15:41:21
535
原创 石子移动问题java(字节青训)
如果这个区间内包含的石子数量少于 n−1,则我们可以通过移动端点石子来增加区间内的石子数量,直到达到 n−1 个石子。那么最大移动次数很容易理解,我们应该尽量减少空位的浪费,由于第一次只能移动左右两端的石子,因此需要将端点石子移到其最近的空位,这样可以确保每次移动后,剩下的空位都不会被丢弃。这道题我最开始以为是移动端点,使得数组变为有序的,后来才发现:题目要求移动端点,且移动后不能在是端点,不必按照大小排序,只需要连续即可,求出最大移动次数。如果某个石子处于最小或最大的一个位置,我们称其为端点石子。
2025-02-14 15:38:43
905
原创 LRU缓存机制 java
请你设计并实现一个满足约束的数据结构。实现LRUCachecapacitykey1keyvaluekey-valuecapacity函数get和put必须以O(1)的平均时间复杂度运行。
2025-02-13 11:40:12
788
原创 字典序最小的01字符串java(字节青训)
小U拥有一个由0和1组成的字符串,她可以进行最多k次操作,每次操作可以交换相邻的两个字符。:优先处理1 后面的第一个0,因为字符串后面的0需要较多的移动次数且对结果的影响较小。,她最多可以进行 2 次相邻字符交换操作。优先处理1后面的第一个0,因为后面的0需要较多的移动次数,且对结果的影响较小。现在,小U想知道,经过最多k次操作后,能够得到的字典序最小的字符串是什么。对于每个1,检查其后面的0,并进行交换操作,直到无法再交换或用尽操作次数。:每次操作只能交换相邻的两个字符,且最多只能进行 k 次操作。
2025-02-13 11:16:09
302
原创 最少字符串操作次数 MarsCode(字节青训)java
她可以执行如下操作:每次选择字符串中两个相同的字符删除,然后在字符串末尾添加一个任意的小写字母。小U想知道,最少需要多少次操作才能使得字符串中的所有字母都不相同?当我们删除一对相同字符,腾出的字符种类数实际上增加了,这可能影响我们如何计算需要额外的操作次数。小U得到一个只包含小写字母的字符串。因此上述答案存在问题,但是可以oc。可以这样修改,但不知道是否正确。需要进行的操作次数就是。1. 统计每个字符的频次。2. 计算需要删除的次数。
2025-02-12 16:58:24
238
原创 环形数组中的最大贡献值(字节青训)
是下标 ii 和 jj 在数组中的最短距离。小S希望找到一对下标,使得它们的贡献值尽可能大。环形数组的特点是最左和最右的元素也是相邻的。你需要帮助她找到最大贡献值。,由于是环形数组,任意两个下标的距离都是1,因此 f(2,3)=(2+3)×1=5f(2,3)=(2+3)×1=5。组合,计算每对组合的贡献值。双重循环遍历所有可能的。
2025-01-29 00:00:00
265
1
原创 小M的数组变换(字节青训)
小M拿到一个数组,她可以进行多次操作,每次操作可以选择两个元素 aiai 和 ajaj,并选择 aiai 的一个因子 xx,然后将 ai 变为 ai/x,并将 aj 变为 aj×x。她的目标是通过有限次操作,使得数组中的每个元素最多只包含一种素因子。:在分解过程中,我们从2开始,逐步尝试每个可能的因子。素因子的定义是:若 xx 能被素数 pp 整除,那么 pp 是 xx 的一个素因子。如果素因子的种类数超过了数组的长度 n,那么无论如何分配,总会有至少一个元素需要包含两种或更多的素因子。
2025-01-26 19:19:51
267
原创 最少前缀操作问题(字节青训)
小U和小R有两个字符串,分别是SS和TT,现在小U需要通过对SS进行若干次操作,使其变成TT的一个前缀。操作可以是修改SS的某一个字符,或者删除SS末尾的字符。现在你需要帮助小U计算出,最少需要多少次操作才能让SS变成TT的前缀。至于AI所说的动态规划法求解这个问题,这是错误的.该方法是用于求解将S变为T的最小操作次数.的字符不同,增加修改操作的计数。关于这个错误方法的代码我会放到最后。,增加删除操作的计数。
2025-01-24 20:57:21
234
原创 最大UCC子串计算(字节青训)
样例2:后面插入 5 个字符 "CCUCC"(5 次插入操作,不超过给定值 m = 6),可以将字符串修改为 "UCCUCC",包含 2 个 "UCC" 子串。插入操作:将 "UUC" 插入一个 "C" 变为 "UUCC",再插入一个 "U" 和一个 "C" 变为 "UCCUCC",可以得到两个 "UCC"。样例1:可以将字符串修改为 "UCCUCCUCC"(2 次替换操作,不超过给定值 m = 3),包含 3 个 "UCC" 子串。替换操作:将 "UUC" 替换为 "UCC",只能得到一个 "UCC"。
2025-01-22 18:22:17
425
原创 观光景点组合得分问题(字节青训)
这种方法的时间复杂度是O(n),其中n是景点的数量。这是因为我们只需要遍历一次数组。小R正在研究一组观光景点,每个景点都有一个评分,保存在数组。同时,景点之间的距离由它们的下标差。小R想知道,在哪种情况下能够获得观光景点组合的最高得分。双重循环求出答案(代码贴在后面这个不讲了),也就是两者评分之和减去它们之间的距离。主要是如何优化时间复杂度。
2025-01-20 18:15:00
247
原创 超市里的货物架调整(字节青训)
当顾客进入超市时,他们会依次从第一个格子查找到第nn个格子,寻找自己想要购买的商品。如果中途遇到一个空格子,或查找完所有格子还没有找到想要的商品,顾客也会离开。作为超市管理员,你可以在顾客到来之前重新调整商品的顺序,以便尽可能多地出售商品。如果商品既有供应又有需求,那么可以卖出的数量是该商品在货物架上的数量和顾客想要购买的数量中的较小值。在一个超市里,有一个包含nn个格子的货物架,每个格子中放有一种商品,商品用小写字母。不要陷入纠结与商品的顺序的陷阱,问题很简单,只是数量的比较。
2025-01-19 16:04:27
175
原创 找出整形数组中占比超过一半的数(字节青训)
小R从班级中抽取了一些同学,每位同学都会给出一个数字。已知在这些数字中,某个数字的出现次数超过了数字总数的一半。现在需要你帮助小R找到这个数字。hashMap建立key和value统计次数超过数组长度一半就返回。
2025-01-18 21:50:05
141
原创 创意标题匹配问题(字节青训)
在广告平台中,为了给广告主一定的自由性和效率,允许广告主在创造标题的时候以通配符的方式进行创意提交。线上服务的时候,会根据用户的搜索词触发的 bidword 对创意中的通配符(通配符是用成对 {} 括起来的字符串,可以包含 0 个或者多个字符)进行替换,用来提升广告投放体验。:对于每个标题,你需要检查它是否可以通过替换模板中的通配符生成。:首先,你需要解析模板字符串,找出所有的通配符和固定字符。:首先,你需要解析模板字符串,找出所有的通配符和固定字符。:根据匹配结果,返回一个包含。替换为正则表达式中的。
2025-01-17 12:03:12
236
原创 6.小E的怪物挑战(字节青训)
小E的初始血量为HH,攻击力为AA。3.为了保持战斗节奏,要求击败的怪物序列中,后一个怪物的血量和攻击力都必须严格大于前一个怪物。个怪物,并且这是她击败的最后一个怪物,那么她最多能击败的怪物数量。2.对于每只怪物,小E可以选择与它战斗或者跳过这只怪物。1.小E可以击败血量和攻击力都小于她当前属性的怪物。初始化为 1,表示小E至少能击败这个怪物。,如果小E能击败它,再遍历之前的所有怪物。值,这个值表示小E最多能击败的怪物数量。的最大值,这表示小E可以在击败第。小E想知道,她最多能击败多少怪物。
2025-01-16 16:39:29
310
原创 寻找最大葫芦(字节青训)
数组中可组成4个葫芦,分别为[6,6,6,8,8],[6,6,6,5,5],[8,8,8,6,6],[8,8,8,5,5]。剩下的3个葫芦的大小关系为[8,8,8,5,5]>[6,6,6,8,8]>[6,6,6,5,5],故返回[8,5]因为三张相同牌面值的A > K,故[A,A,A,K,K]比[K,K,K,A,A]要大,返回[1,13]说明:可组成2个葫芦,分别为[9,9,9,6,6]和[6,6,6,9,9],由于[9,9,9,6,6]的牌面值为39,大于37,故返回[6,9]
2025-01-15 17:06:31
323
原创 数组练习_回形矩阵
* * 回形数 从键盘输入一个整数(1~20) ,则以该数字为矩阵的大小,把 1,2,3…n*n 的 数字按照顺时针螺旋的形式填入其中 */ /* * 一共重复上右下左四个循环的动作、这四个动作重复执行、 * 因此需要一个for循环里面四个for循环 * 第一个for循环执行n/2次 */
2023-11-28 11:31:56
381
原创 实验九3D编程基础
使用Opengl库实现实验一一、实验目的1.熟悉3D基本编程。2.熟悉视点观察函数的设置和使用。3.熟悉投影变换函数的设置和使用。4.熟悉基本3D图元的绘制。二、实验内容1.读懂以下3D物体程序,并结合本书内容理解一些新的绘制函数和投影变换函数的含义:3D Cube.cpp(见后面参考程序)为正交投影下的旋转3D立方体,按下鼠标可实现不同方向的旋转,效果图参见实验图9-1,分析3D编程代码与程序结构。对于以下操作需要记录不同效果图和修改的相应参数:1)让静止的立方体绕Z轴不停旋转。修改参数:2)修改不同视点
2022-07-07 15:58:01
2428
原创 编写一段程序录入 N 个学生的信息包括姓名、性别、年龄和成绩;要求:1.按照成绩由小到大的顺序输出,如果成绩相同则按学号由小到大的顺序输出;2.计算 N 个学生成绩的平均值;
题目和要求:编写一段程序录入 N 个学生的信息包括姓名、性别、年龄和成绩;要求:1.按照成绩由小到大的顺序输出,如果成绩相同则按年龄由小到大的顺序 输出;2.计算 N 个学生成绩的平均值;注:1.输入的第一行是一个整数 N,表示 N 个学生;接下来 N 行每行描述一个 学生的姓名、性别、年龄和成绩。样例:例子 1:3Alice female 18 98Bob male 19 90Miller male 17 92结果: Bob male 19 90Mille.
2021-07-23 11:21:55
6535
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人