
刷题
文章平均质量分 65
小小志.
这个作者很懒,什么都没留下…
展开
-
【leetcode】不同路径
总共需要:向右走 n-1下,向下走m-1下,共m+n-2下,也就是需要在m+n-2下里面选择向下走m-1下的方案数;这两个点到坐标(1,1)的路径有且仅有一条,往右或者往下,这个不是选择,而是你走到(1,0)只能往右,走到(0,1)只能往下,没有其他选择。2行:f[] = {1,2,3,4,5,6,7} ,2是怎么来的呢?(0,0)----(1,0)-----(1,1),也就是(1,0)和(0,1)的路径之和。也就是如果只有1行,则该滚动数组为f[] = {1,1,1,1,1,1,1}原创 2024-07-23 00:07:18 · 322 阅读 · 0 评论 -
【leetcode】排列序列
例如 (9 -1)/ 6 + 1= 2,说明第一个数字为2,ans累加vali[2] ,2被使用后erase掉,valid中剩余[0,1,3,4]1、定义一个逆康托数组,记录n位数字对应每个数字开头序列的个数,例如4位数prenum[1, 1, 2, 6]将k值-1,再进行计算,这里-1是为了 9 % 6 = 3,而数组下标从0开始,-1后方便计算。3 / 2 = 1······1,可知位于3开头的第一个。1 / 1 = 1·····0,可知位于1开头的第一个。,而第一位2确定后,剩下3个数;原创 2024-07-22 22:57:32 · 492 阅读 · 0 评论 -
【leetcode】 字符串相乘(大数相乘、相加)
由题目可知输入字符串的长度在[1,200],所以想转成整数再计算肯定是不行的,题目也要求了不能转换为整数。① num2 的个位(8)分别去与num1的每一位去相乘,得到一个数,同样以字符串的形式存储(数字太长也会溢出,存不了)② num2 的十位同理按照1的步骤去分别与num1的每位数字相乘,记录得到的结果,然后再累加。注意:记得补0 ,第一层不用补(以第一层为对齐),第二层补一个,第三层补2个。将每次计算的和取余放到string中,然后反转---再转为字符串。的乘积,它们的乘积也表示为字符串形式。原创 2024-07-18 00:00:15 · 698 阅读 · 0 评论 -
【leetcode】整数反转
rev = rev*10 +digit 的数据计算到9位时,rev此时等于 846384741 ,这个数很显然是大于INT_MAX / 10的(2,147,483,64)。同理负数也是一样如果末尾大于8,且是一个10位数,翻转后必定溢出。int类型的取值范围为[-2^31, 2^31-1], 也就是[-2,147,483,648, 2,147,483,647] ,可以发现首位为2,末尾为8和7。当一个数,比如 num = 2,147,483,648 是一个超出范围的数,末尾为8,当按照。原创 2024-07-13 16:39:31 · 346 阅读 · 0 评论 -
OJ【身高体重排序】
n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;将每一位同学的身高、体重和序号放到一个数组中,多位同学组成一个二维数组,然后对二维数组按照下面的优先级进行排序,排序后,最后一列的序号则是答案。第一个序列中的数值代表身高,第二个序列中的数值代表体重。排列结果,每个数值都是原始序列中的学生编号,编号从1开始,身高从低到高,身高相同体重从轻到重,体重相同维持原来顺序。这里用到sort函数排序,排序函数需要自己定义,身高为第一优先级,身高相同判断体重,都相同则根据序号排列。原创 2024-03-26 21:22:29 · 513 阅读 · 0 评论 -
OJ[号码拦截]
每个号码的统计记录的格式如: 13144444444 1 3,以单个空格隔开,表示号码13144444444 接通1次,拒接3次。any函数,用于给定的可迭代参数是否全部为False,则返回False,如果一个为True,则返回True。第一行正数n,表示共有n条电话呼入和白名单操作记录,取值范围为[1,3000].1、定义一个string类型的队列,保存呼入号码出现的顺序,出现过的只保留1次。13300000000 呼入了1次,不在白名单中,接通0次,拒接1次。如果来电号码在白名单中,则电话要接通。原创 2024-03-26 20:38:01 · 984 阅读 · 0 评论 -
OJ【素数行李箱密码】
(注意,是改变,比如0023改变第4位后,变成0029)每次操作后的数字必须始终是素数(如23和29是素数)。现给定行李箱的初始密码与解锁密码(都是素数,包含前导0),请找出最快的开锁方式(改变次数最少),输出改变次数,如果无法解锁,输出-1。3、分别对四位数的每一位进行BFS遍历,0023 (0023,1023, 2023, 3023 ****,这里只需要保留素数)0023->0059,存在两种开锁方式:0023->0029->0059,或0023->0053->0059,操作次数都是2。原创 2024-03-16 00:28:24 · 431 阅读 · 0 评论 -
OJ【代码缩进】
请实现一个简易的代码缩进功能:把一段未缩进的代码,通过多次操作,最终实现对没遗憾的缩进长度要求。接下来一行有n个整数,一次表示第1~n行的总缩进长度要求,取值范围:[0, 1000000]。现给出一段代码的每行缩进长度要求,用一个数字序列表示,请计算至少需要多少次操作才能实现。第三次操作:选中第三行,缩进1.完成,共缩进3次。一个整数n,表示代码总行数,取值范围:[1, 65535]。第二次操作:选中中间3行,缩进1。第一次操作:全选中缩进1。一个整数,表示所需的最少操作次数。原创 2024-03-05 21:55:34 · 334 阅读 · 0 评论 -
OJ【日志敏感信息屏蔽】
3、key在words中,且以非 IP 结尾的:仅需对value中最右侧的长度(L)大于等于4,且连续为数字的子串进行屏蔽,从倒数第L/4+1个数字字符开始(比如L为9,从倒数第三个开始),从右到 左对中间的L/2个字符用 * 代替。日志信息字符串是以,分割的[key:value]格式表示的字符串,value中不会包括字符,和:,以key值区分衣服为敏感信息。敏感信息:其key值有两类,第1类是出现在words中的,第2类是缺省关键字password和pwd(注:第2类优先)。原创 2024-03-04 23:07:37 · 563 阅读 · 0 评论 -
OJ【最佳升级时间窗】
现给定升级影响的容忍值,和一个周期(7*24)的每小时用户访问量的历史数据(整数数组),请计算最佳升级时间窗,并返回其开始时间和结束时间的下标,如果存在多个最佳升级时间窗时,返回开始时间下标最小的一个。两个整数,分别表示所计算出的最佳升级时间窗的开始时间下标(包含)和结束时间下标(包含),不存在时返回-1,-1。2、升级时间窗必须是连续的X个小时,越大越好,最大的X即为最佳升级时间窗,且不超过7*24。1、sum记录窗口内数据的和,当sum小于等于n时,窗口右边界向右移动;最佳升级窗口为:2 1 1 2。原创 2024-02-28 22:04:18 · 1239 阅读 · 0 评论