自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

面试高手的博客

精通大厂面试流程、规则、细节

  • 博客(61)
  • 收藏
  • 关注

原创 寻找链表的中间节点-C++

题目给出了链表的首结点地址和每个结点的信息(地址、数据、下一结点的地址),因此我们需要通过这些信息来重建链表并找到中间结点。- 使用哈希表(字典)来存储每个结点的信息,键是结点的地址,值是一个包含该地址对应的 Data 和 Next 的元组。给定一个单链表QL,请编写程序输出L中间结点保存的数据,如果有两个中间结点,则输出第二个中间结点保存的数据。其中Address是结点地址,Data是该结点保存的整数数据(0≤Data≤10^8),Next是下一结点的地址。- 通过链表结点的数量可以找到中间结点的位置。

2025-03-10 11:32:47 203

原创 最大括号深度

现有一字符串仅由‘(‘,’)’,‘{‘,’}’,‘[‘,’]’六种括号组成。(2)当遇到右括号时检查是否与栈顶匹配,不匹配或栈为空则直接输出 0;(1)使用 Stack 存放左括号,每次入栈时更新当前的最大深度;一个只包括(‘,’)’,‘{‘,’}’,‘[‘,’]’的字符串。(3)遍历结束后若栈不为空,则输出 0,否则输出最大嵌套深度。输出括号的最大嵌套深度,若字符串无效则输出0。无效字符串,有两种类型的左右括号数量不相等。无效字符串,存在未按正确顺序闭合的括号。一个整数,最大的括号深度。

2025-03-10 11:26:48 246

原创 小明周末爬山

3. BFS 特性:广度优先搜索可以保证,**第一个到达某个位置的路径就是最短路径,因为 BFS 是层层扩展的,每层的节点都是从上层节点扩展过来的。周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次吧山或下山高度只能相差k及K以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发。根据山地图可知,能爬到的最高峰在(0,2)位置,高度为2,最短路径为(0,0)-(0,1)-(0,2),最短步数为2。请问小明能爬到的最高峰多高,到该最高峰的最短步数,输出以空格分隔。

2025-03-09 16:30:00 36

原创 MELON的难题

均分时可以1.1.1.1.1.9.7和10.8.3,也可以1.1.1.1.9.8和10,7.3,1,或者其他均分方式,但第一种只需要拿出重量为10,8,3的3块雨花石,第二种需要拿出4块,所以输出3(块数最少)。如果能找到这个子集,说明可以平分雨花石。- 如果 dp[target] 仍然是初始值(例如 ∞),说明无法凑出重量为 target 的子集,即不能平分雨花石,此时输出 -1。- 这里 dp[j - weights[i]] + 1 表示加入当前雨花石后,能够凑出重量 j,并更新所需雨花石的最小数量。

2025-03-08 21:25:10 183

原创 模拟目录管理-C++

不支持嵌套路径和绝对路径,如mkdir abc/efg, cd abc/efg, mkdir /abc/efg, cd /abc/efg是不支持的。2)进入目录命令:cd 目录名称, 如cd abc为进入abc目录,特别地,cd ..为返回上级目录,如果目录不存在则不执行任何操作。1)创建目录命令:mkdir 目录名称,如mkdir abc为在当前目录创建abc目录,如果已存在同名目录则不执行任何操作。在根目录创建一个abc的目录并进入abc目录中查看当前目录路径,输出当前路径/abc/。

2025-03-06 15:55:30 282

原创 字符串化繁为简-Java

输入字符串为"never(dont)give(run)up(f)()",初始等效字符集合为('d','o','n','t')、('r','u','n'),由于等效关系可以传递,因此最终等效字符集合为(''d','o','n','t','r','u'),将输入字符串里的剩余部分按字典序最小的等效字符替换后得到"devedgivedp。等效字符集为('a','A','b'),输入字符里没有被小括号包含的子字符串集合为"abcdefgAC",将其中字符替换为字典序最小的等效字符后输出为:"AAcdefgAC"

2025-03-06 15:52:53 144

原创 二叉树计算-C++

在中序遍历中定位根节点:根据前序遍历确定的根节点,在中序遍历中查找该节点,确定左右子树的分界。递归构建左右子树:使用根节点在中序遍历中的位置分割中序序列,以分别构建左右子树。本题难点在于,值可以是重复的,所以说我们需要判断找到的中序节点位置是否是正确的。请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。2行整数,第1行表示二叉树的中序遍历,第2行表示二叉树的前序遍历,以空格分割。在中序遍历中,根节点位于其左右子树的中间,这一特性是重建二叉树的关键。

2025-03-05 10:15:37 60

原创 计算堆栈中的剩余数字-Python

当存入3时,3=2+1,3、2、1全部出栈,重新入栈元素6(6=2*3),此时栈中有元素6;每当元素入栈时,如果n1=n2+...+ny(y的范围[2,x],1<=x<=1000),则n1~ny全部元素出栈,重新入栈新元素m(m=2*n1)。5+10+20+50=85, 输入85时,5、10、20、50、85全部出栈,入栈170,最终依次出栈的数字为1和170。使用单个空格隔开的正整数的字符串,如"5 6 7 8", 左边的数字先入栈,输入的正整数个数为x,1<=x<=1000。

2025-03-05 10:04:11 158

原创 计算疫情扩散时间-C++

每次我们扩展所有当前感染区域的上下左右相邻区域,将这些区域标记为感染,然后继续下一天的扩展,直到所有区域都被感染为止。-行 N*N 个数字(只包含0,1,不会有其他数字)表示一个地图,数字间用","分割。如果初始地图上所有区域全部都被感染,或者没有被感染区域,返回-1。- 如果地图上所有区域都已经感染或没有感染区域,直接返回 -1。在一个地图中(地图由n*n个区域组成),有部分区域被感染病菌。- 以天为单位,扩展所有当前感染区域的上下左右相邻区域。请根据给定的地图计算,多少天以后,全部区域都会被感染。

2025-03-04 10:05:00 251

原创 服务失效判断

所以可用的是a3、a6,在依赖关系列表中a6先出现,所以输出:a6,a3。依赖关系列表中提及的所有服务中可以正常工作的服务列表,用半角逗号分隔,按依赖关系列表中出现的次序排序,·依赖具有传递性,如 A依赖 B,B 依赖 C,当 C故障时导致 B 故障,也导致 A故障。依赖关系列表、故障列表非空,且依赖关系数,故障服务数都不会超过3000,服务标识格式正常。a1依赖a2,a2故障导致a1也故障,没有正常节点,输出一个逗号。a1依赖a2,a2依赖a3,所以a2故障,导致a1不可用,但。

2025-03-04 09:59:57 1018

原创 查找接口成功率最优时间段-C++

B、通过计算小于等于2的最长时间段为:数组下标为0-1即[0, 0],数组下标为3-4即[2, 2],数组下标为6-7即[0, 2],这三个部分都满足平均值小于等2的要求,因此输出0-1 3-4 6-7。双指针,遍历所有的情况,检查这个区间是否可行即可,可以使用前缀和来降低复杂度,也可以不使用,这题数据很小。A、输入解释:minAverageLost=2,数组[0, 0, 100, 2, 2, 99, 0, 2]A、输入解释:minAverageLost=1,数组[0, 1, 2, 3, 4]

2025-02-25 15:35:30 204

原创 TLV解码-C++

码流以某信元的 Tag 开头,Tag 固定占一个字节,Length 固定占两个字节,字节序只为小端序。现给定 TLV 格式编码的码流,以及需要解码的信元 Tag,请输出该信元的 Value。TLVQ编码是按 ITag Length value 格式进行编码的,一段码流中的信元用 Tag 标识,Tag 在码流中唯一不重复,Lengt 表示信元Value的长度,Value 表示信元的值。- 输入包括两行,第一行是需要查询的Tag,第二行是16进制码流,码流中的每个字节用空格分隔。

2025-02-25 15:33:11 69

原创 太阳能板最大面积-Java

给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。给定一组支柱高度,任取两根支柱能形成一个矩形区域,该区域的面积由两根支柱中较矮的一根的高度乘以两者之间的距离决定。指针移动策略:为了可能获得更大的面积,移动较矮那一侧的指针(因为较矮支柱决定了当前的高度,只有找到更高的支柱才能增大面积)。现提供一组整形数组的支柱高度数据,假设每根支柱间距离相等为1个单位长度,计算如何选择两根支柱可以使太阳能板的面积最大。

2025-02-24 09:56:43 77

原创 VLAN资源池-C++

定义一个 VLAN ID 的资源池(下称VLAN资源池),资源池中连续的VLAN用 开始VLAN-结束VLAN 表示,不连续的用单个整数表示,所有的VLAN用英文逗号连接起来。原VLAN资源池中有VLAN5、6、7、8、9、10、15、18、20.21、30,从资源池中移除15后,资源池中剩下的VLAN为 5、6、7、8、9、10、18、20、21、30,按照题目描述格式并升序后的结果为5-10,18,20-21.30。如果申请的VLAN不在原VLAN资源池内,输出原VLAN资源池升序排序后的字符串即可。

2025-02-23 14:52:51 48

原创 学生方阵-Java

请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。- 对于每一个元素 matrix[i][j],如果它是男生('M'),则检查从该点开始的四个方向上的连续男生的数量。- 从当前元素 (i, j) 出发,根据四个方向向量,检查在这些方向上的下一个元素是否也是男生('M')。- 反对角线方向:dx = [1], dy = [-1](增加行索引,减少列索引)- 如果当前方向上的男生数量超过了之前记录的最大值,则更新 maxCount。

2025-02-23 14:49:57 49

原创 云短信平台优惠活动-Java

第二行给出售价表,P1,P2...Pn, 其中 1<=n<=100,Pi为充值i元获得的短信条数。题目要求在给定的预算内,购买尽可能多的短信条数。每个价格对应不同的短信条数,目标是通过选择合适的套餐,获得最多的短信。遍历每个套餐价格,更新 dp 数组,确保每次选择可以带来最多短信条数的套餐。定义一个数组 dp[i],表示在预算为 i 元时,最多能购买的短信条数。现在给出客户预算,和优惠售价序列,求最多可获得的短信总条数。分两次充值最优,1元、5元各充一次。

2025-02-22 18:06:42 40

原创 相对开音节

给定一个字符串,以空格为分隔符,反转每个单词中的字母,若单词中包含如数字等其他非字母时不进行反转。反转后计算其中含有相对开音节结构的子串个数(连续的子串中部分字符可以重复)。ekam含非英文字符所以未反转,其中cake、keke为相对开音节子串,返回2。反转后为 make a cake 其中make、cake为相对开音节子串,返回2。相对开音节构成的结构为:辅音+元音(aeiou)+ 辅音(r除外)+ e。字符串,以空格分割的多个单词,字符串长度<10000,字母只考虑小写。(2)相对开音节判断。

2025-02-22 18:01:31 1067

原创 寻找链表的中间节点-Java

题目给出了链表的首结点地址和每个结点的信息(地址、数据、下一结点的地址),因此我们需要通过这些信息来重建链表并找到中间结点。- 使用哈希表(字典)来存储每个结点的信息,键是结点的地址,值是一个包含该地址对应的 Data 和 Next 的元组。给定一个单链表QL,请编写程序输出L中间结点保存的数据,如果有两个中间结点,则输出第二个中间结点保存的数据。其中Address是结点地址,Data是该结点保存的整数数据(0≤Data≤10^8),Next是下一结点的地址。- 通过链表结点的数量可以找到中间结点的位置。

2025-02-20 16:35:36 182

原创 找单词-Python

输出一个位置下标字符串,拼接格式为:第1个字符行下标+","+第1个字符列下标+”,”+第2个字符行下标+""+第2个字符列下标.…给一个字符串和一个 二维字符数组,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串,如果找不到返回字符串“N”1.需要按照字符串的字符组成 顺序搜索,且搜索到的位置必须是相邻单元格,其中"相邻单元格"是指那些水平相邻或垂直相邻的单元格。- DFS的目标:DFS 的任务是找到目标字符串的每个字符,保证每个字符与前一个字符相邻。

2025-02-20 16:32:18 362

原创 荒岛逃生游戏

正负表示逃生方向(正表示向右逃生,负表示向左逃生),绝对值表示战斗力,越左边的数字表示里左边港口越近,逃生方向相同的人永远不会发生决斗。- 如果左逃生者的战斗力大于右逃生者,则左逃生者获胜,减少其战斗力,并将右逃生者出栈。- 处理完所有输入后,统计仍在右逃生者栈和左逃生者栈中的战斗力,即可得到成功逃生的人数。- 如果左逃生者的战斗力小于右逃生者,则右逃生者获胜,减少其战斗力,左逃生者出局。- 向左逃生:从右逃生者栈中取出元素,与当前逃生者进行决斗。- 继续进行决斗,直到没有右逃生者或左逃生者的战斗力用尽。

2024-10-01 09:00:00 1235

原创 最大社交距离

疫情期间需要大家保证一定的社交距离,公司组织开交流会议,座位一排共 N 个座位,编号分别为[0,N-11。set 是一个无序的数据结构,但由于查询和删除的操作都是 O(1),适合用来存储动态更新的座位。每当一个员工进入时,需要坐到最大社交距离(最大化自己和其他人的距离的座位)·如果有多个这样的座位,则坐到索引最小的那个座位。- 如果空位位于中间,计算它与左右两侧最近的已坐座位的距离,选择较小的那个距离。seat ->4,要和旁边的人距离最远,应该坐到中间,也就是座位 4。

2024-09-14 10:11:14 1288 2

原创 通过软盘拷贝文件-

文件占用的软盘空间都是按块分配的,每个块大小为512个字节。一个块只能被一个文件使用。虽然后两个文件总大小更大且未超过1474560字节,但因为实际占用的大小超过了1474560字节,所以不能选后两个文件。从6个文件中,选择3个大小为400000的文件和1个大小为200000的文件,得到最大总大小为1400000。也可以选择2个大小为400000的文件和3个大小为200000的文件,得到的总大小也是1400000。接下来的第2行到第N+1行(共N行),每行为一个整数,表示每个文件的大小Si,单位为字节。

2024-09-13 16:30:00 1022

原创 连续字母长度-

通过遍历字符串,我们可以统计每个字母的连续出现次数,并在同一字母的不同连续子串出现时,只保留最长的那个子串长度。例如,给定字符串 "AAAAHHHBBCDHHHH",其中 A 连续出现了 4 次,H 连续出现了两段,分别是 3 次和 4 次,只保留最长的 4 次。给定一个字符串Q,只包含大写字母,求在包含同一字母的子串中,长度第k长的子串的长度,相同字母只取最长的那个子串。如果 k 大于子串的数量,则输出 -1,表示没有第 k 长的子串。只含有3个包含同一字母的子串,小于k,输出-1。

2024-09-13 15:00:56 1714

原创 最大报酬-

由于 dp[i][j] 仅依赖于上一行 dp[i-1][...],我们可以将 dp 数组优化为一维,减少空间复杂度。和报酬,工作的总报酬为所有已完成工作的报酬之和,那么请你帮小明安排一下工作,保证小明在指定的工作时间内工作收入最大化。- dp[i-1][j-t[i]] + w[i] 表示选择第 i 个任务时的最大报酬(前提是 j >= t[i])。我们需要初始化 dp[0][j] = 0,因为在没有任务时,任何时间的报酬都是 0。- dp[i-1][j] 表示不选择第 i 个任务时的最大报酬。

2024-09-09 18:00:00 1837

原创 第k个排列

这个问题要求我们在已知整数 n 的情况下,找到从 1 到 n 的所有排列中的第 k 个排列。直接生成所有排列并取第 k 个排列虽然可行,但随着 n 的增加,排列数量会呈现指数级增长,效率较低。给定参数 n,从 1到 n会有n个整数:1,2,3....,n,这n个数字共有 n!1、计算每一位上的数字:我们可以先确定第一个数字是多少,因为以某个数字开头的排列有 (n-1)!4、根据 k 的大小,可以确定第一个数字是哪一个,然后递归地对剩下的数字做同样的操作。第一行为 n,给定n的范围是[1,9]

2024-09-09 10:01:55 1478 1

原创 敏感字段加密

的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现;请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令只字前后多余的下划线。每个命令字可能被下划线分隔,但如果命令字包含在双引号内,双引号内的下划线不能分隔命令字。- 处理双引号中的命令字:双引号中的命令字可能包含下划线,也可能是空的(即双引号之间没有内容,如"")。- 如果K在有效范围内(即索引存在对应的命令字),我们将该命令字替换为******。- 如果在双引号外,遇到下划线意味着一个命令字的结束。

2024-09-09 08:00:00 1432

原创 高矮个子排队

例如,在示范小队{5,3,1,2,3}中,{5,1,3,2,3}是排序结果{5,2,3,1,3} 虽然也满足“高”“矮”“"高”“矮”顺序排列,但小朋友们的移动距离大,所以不是最优结果。本题的第一个样例有问题,输入为 4 1 3 5 2,则最优解应该为4 1 3 2 5,这样只需要移动一次且移动距离为1,而样例中移动了两次,移动距离为2。备注:4(高)3(矮)7(高)5(矮)8(高),输出结果为最小移动距离,只有5和7交换了位置,移动距离都是1。排序后的小朋友,以英文空格分割的正整数:4 3 7 5 8。

2024-09-07 11:12:44 1742 4

原创 -数大雁-

'k': 当 'c' 的数量大于 'k' 时,增加 'k' 的计数,同时 cnt[i+1] 也增加,表示完成了一个完整的“quack”。- 我们使用五个计数器来分别跟踪字符 'q', 'u', 'a', 'c', 'k' 的数量。- 'u': 当遇到 'u' 时,只有当已有 'q' 的数量大于 'u' 时,增加 'u' 的计数,表示这些大雁发出的叫声进入了下一个阶段。一个字符串,包含大雁quack的叫声。- 'a': 类似地,只有当 'u' 的数量大于 'a' 时,增加 'a' 的计数。

2024-09-06 15:01:36 1878 3

原创 找终点。。

给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。3、第二步开始,每次走的步长都是前一步结束所在位置的值,比如第二步要走的步长就是A位置的值,因此只需要模拟接下来的过程即可,2、从第二步开始,只能以所在成员的数字走相应的步数,不能多也不能少,如果目标不可达返回-1,只输出最少的步骤数量。1、这题至少要走两步,因为第一步的步长是自选的,只要小于 len/2,即可,正整数,表示最少的步数,如果不存在输出-1。

2024-09-06 14:44:50 1739

原创 计算疫情扩散时间

每次我们扩展所有当前感染区域的上下左右相邻区域,将这些区域标记为感染,然后继续下一天的扩展,直到所有区域都被感染为止。如果初始地图上所有区域全部都被感染,或者没有被感染区域,返回-1。- 如果地图上所有区域都已经感染或没有感染区域,直接返回 -1。在一个地图中(地图由n*n个区域组成),有部分区域被感染病菌。- 以天为单位,扩展所有当前感染区域的上下左右相邻区域。请根据给定的地图计算,多少天以后,全部区域都会被感染。1个整数,表示经过多少天以后,全部区域都被感染。- 如果最终所有区域都被感染,返回天数。

2024-09-06 10:00:00 1352 1

原创 猜字谜--

第二种条件可以使用 set 来去重,由于题目中要求满足其中一个条件即可,因此我们可以把两个条件放在一起做,只需要先对所有的字符串进行去重,然后排序,最终对比两个字符串是否一致,一致则加入答案数组中,最终按要求输出即可。小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如 nesw,玩家需要猜出谜底库中正确的单词。2、字母去重以后是一样的,比如“woood”和“wood”是一样的,它们去重后都是“wod'请你写一个程序帮忙在谜底库中找到正确的谜底。匹配到的正确单词列表,以“,”分隔。

2024-09-06 08:00:00 2246 4

原创 导师请吃火锅

然后用动态规划的思路,dp[i]=x 表示前 i 秒的最优解即可,这样的做法是O(n^2)的。换一个思路想,因为每次至多只能捞一个食材,所以实际上贪心就可以了——只有有菜且有空,就捞。你希望吃到最多的刚好合适的菜,但你的手速不够快,用m代表手速,每次下手捞菜后至少要过m秒才能再捞(每次只能捞一个)。接下来有n行,每行有两个数x,y代表第x秒下的菜过y秒才能变得刚好合适。第一行两个整数n,m,其中n代表往锅里下的菜的个数,m代表手速。输出一个整数代表用最合理的策略,最多能吃到刚好合适的菜的数量。

2024-09-05 18:30:00 1270

原创 数字游戏-

第一组小明牌的数字为7,再发了6张牌。第1、2两张牌教字和为14,可以整除7,输出1,第二组小明牌的教字为11,再发了10张牌,这10张牌数字和为10,无法整除11,输出0。我们暴力枚举牌的子数组的所有情况,用前缀和来降低求子数组和的复杂度。需要小明判断,后n张牌中,是否存在连续的若干张牌,其和可以整除小明手中牌上的数字。对每组输入,如果存在满足条件的连续若干张牌,则输出1;输入数据有多组,每组输入数据有两行,输入到文件结尾结束。第二行有n个数,代表后续发的n张牌上的数字,以空格隔开。

2024-09-05 17:30:00 1785 2

原创 猜数字--

考虑到数据范围小,所以我们可以枚举答案,去验证示例是否正确。其中X表示位置正确的数的个数(数字正确且位置正确),而Y表示数字正确而位置不对的数的个数。每猜一个数,出数者就要根据这个数字给出提示,提示以XAYB形式呈现,直到猜中位置。当前已知N组猜谜者猜的数字与提示,如果答案确定,请输出答案,不确定则输出NA。例如,当谜底为8123,而猜谜者猜1052时,出题者必须提示0A2B.例如,当谜底为5637,而猜谜者才4931时,出题者必须提示1A0B.输出最后的答案,答案不确定则输出NA。

2024-09-05 14:30:00 2699

原创 字母组合。

数字字符串78,可以得到如下字符串uw,ux,vw,vx;输入一串数字后,通过数字和字母的对应关系可以得到多个字母字符串(要求按照数字的顺序组合字母字符串);第一行输入为一串数字字符串,数字字符串中的数字不允许重复,数字字符串的长度大于0,小于等于5。第二行输入是屏蔽字符串,屏蔽字符串的长度一定小于数字字符串的长度,屏蔽字符串中字符不会重复,·0 关联“a”,”b”,”c”·1 关联“d”,”e”,”f”·2 关联“g”,”h”,”i”·3 关联“j”,”k”,”l”·4 关联“m”,”n”,”o”

2024-09-05 12:01:22 1590

原创 光伏场地建设规划

第一行输入为调研的地区长,宽,以及准备建设的电站【长宽相等,为正方形】的边长,最低要求的发电量,之后每行为调研区域每平方公里的发电量。表示调研的区域大小为长2宽5的矩形,我们要建设的电站的边长为 2,建设电站最低发电量为 6。输入长为2,宽为5的场地,建设的场地为正方形场地,边长为1,要求场地的发电量大于等于6。输入长为2,宽为5的场地,建设的场地为正方形场地,边长为1,要求场地的发电量大于等于0。输入长为2,宽为5的场地,建设的场地为正方形场地边长为2,要求场地的发电量大于等于6。

2024-09-05 09:48:39 4102 4

原创 增强的strstr

现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊査询,与strstr一样返回首次查找到的字符串位置可选段使用“"“标识,表示该位置是可选段中任意一个字符即可满足匹配条件。与strstr函数不同,返回的是源字符串中,匹配子字符串相对于源字符串地址的偏移(从0开始算),如果没有匹配返回-1。1. 可选段表示:目标字符串中的可选段用方括号`[]`表示,其中的字符为可以替代该位置的任意一个字符。2. 目标字符串 (needle):需要在源字符串中查找的模式,可能包含可选段(用“[]”表示)。

2024-09-04 18:00:00 2464 3

原创 日志采集。。

日志会按行生成,每一行记为一条日志,采集系统会分批上报这些日志。如果第2个时刻上报,最多上报100条,前50条延迟上报1s,每条扣除1分,共获得积分为100-50=50。3. 输出结果:在所有可能的上报时机中,选择积分最高的一次作为最终的上报时间点,并输出该积分。- 判断最佳时机:通过比较在不同时间点上报的积分,找到最大积分的时间点。- 当累计的日志达到100条时,强制上报,并记录此时的积分。- 迭代检查:遍历日志序列,模拟在每个时间点上报日志时的积分。- 对于每一个时间点,累加当前时间点生成的日志条数。

2024-09-04 12:00:00 2647

原创 分糖果--

把每个数字看作其二进制数,对于奇数情况,必须加1或减1,对于减1再 / 2 对于该位之前的数字没有任何影响,加1后如果前位也是1则前面的1也变成0,这相当于通过加1操作将多个1变成了0,而最多只会产生一个新的进位。其余情况下,如果能每次加1能去除2个以上的非最高位上的1一定是赚的。当糖果不能 平均分配只时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。- 如果糖果数量是奇数:根据当前糖果数量是加一还是减一能最快到达1来决定操作。- 如果糖果数量是偶数,我们直接除以2。

2024-09-04 10:00:00 2491 3

原创 贪心的商人

商人经营一家店铺,有number种商品,由于仓库限制每件商品的最大持有数量是item[index],每种商品的价格是item_price[item_index][day]针对第一件商品,商人在第一天的价格是itemprice[0][0]=1时买入item[0]件,在第三天item_price[0][2]=3的时候卖出,获利最大是8;针对第三件商品,商人在第一天价格是itemprice[2][0]=1时买入item[2]件,在第二天itemprice[2][0]=5的时候卖出,获利最大是24;

2024-09-04 08:00:00 3032 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除