- 博客(13)
- 收藏
- 关注
原创 leetcode67
2、然后从后到前遍历所有的位数,同位相加,这里有一个点,用的是字符相加,利用 ASCII 码,字符在内部都用数字表示,我们不需要知道具体数值,但可知 ‘0’-‘0’ = 0, ‘0’+1=‘1’,以此类推。字符的加减,大小比较,实际上都是内部数字的加减,大小比较。4、第 0 位数的相加在这里是单独处理的,因为它可能涉及到字符的插入(即是否需要在最前面加一位数 ‘1’,如示例1。1、首先让两个字符串等长,若不等长,在短的字符串前补零,否则之后的操作会超出索引。,以二进制字符串的形式返回它们的和。
2023-09-25 22:12:26
104
1
原创 6、杭电1005(不能简单用递归)
不难发现,f(n)的结果出现了循环。我们要做到的就是找到这个循环的长度,用n模上循环长度,结果的位置就出来了。很自然想到递归,写完注意到n的取值( 1 <= n <= 100,000,000),递归肯定要报内存错了。f(n) 由f(n-1)和f(n-2)与常数AB决定,而f(n)的值一定小于7,只能为0-6这7个值。组合重复,即f(n-1),f(n-2)在之前已经出现过,由它们计算出的f(n)也必然出现过,以此类推。f(n-1)和f(n-2)同样也只能为0-6这七个值,
2023-09-24 18:18:39
114
1
原创 最大总和(动态规划)
比如说,1+1+1+1+1=5,那么再加1呢,等于6。可以发现,我们非常快地得出了答案,那是因为我们记住了上一个结果是5,5+1=6。如果我们重新1+1+1+1+1+1=6,那么肯定会慢,而且会造成许多不必要的浪费。比如说:给你一个序列(6,-1,5,4,-7),它的子序列之和中的最大值是6 + (-1) + 5 + 4 = 14。接下来的T行,每一行都首先是一个范围在1到100000的数字N,代表着该测试案例中所包含的测试数据个数。第一行是一个范围在1到20的整数T,代表着接下来输入的测试案例;
2023-09-24 18:14:20
162
1
原创 hd数列求和
假设结果是一个32位的有符号整数,也就是说最大值是有符号整数范围要在-2的31次方到2的31次方-1之间,假设sum为2的31次方,那么根据sum=(n+1)*n/2可以大致得到n的大约取值是2的16次方,意味当n>=2的36次方就会溢出。因此这里出现了乘法溢出的问题,在这里不能直接用等差数列求和公式,因为题中说:You may assume the result will be in the range of 32-bit signed integer.要求是求和之后的结果不能超过32位。
2023-09-24 18:13:02
61
1
原创 leedcode66
3、如果 digits的所有元素都是 999,例如 [9,9,9,9,9][9, 9, 9, 9, 9][9,9,9,9,9],那么答案为 [1,0,0,0,0,0][1, 0, 0, 0, 0, 0][1,0,0,0,0,0]。1、如果的末尾没有 999,例如 [1,2,3][1, 2, 3][1,2,3],那么我们直接将末尾的数加一,得到 [1,2,4][1, 2, 4][1,2,4] 并返回;当我们对数组 digits 加一时,我们只需要关注 digits的末尾出现了多少个 999 即可。
2023-09-17 15:05:01
84
1
原创 zeng的leetcode日记
这种简单的代码,用来反转整数,如果判断条件是if (a < INT_MIN ||a > INT_MAX ),这里的INT_MAX=2147483647 ,INT_MIN=-2147483648(这两个预定义宏在头文件。例如 x=2123456789,反转过后的值9876543212>INT_MAX,a是int型,a=9876543212不能再用int型来存储,又不能用long long 所以需要改变判断条件,注意题目是给我一个 32 位的有符号整数。如果反转后整数超过 32 位的有符号整数的范围。
2023-09-16 16:26:56
149
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人