会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
machine_gun_lin
博客园
首页
新随笔
联系
管理
订阅
上一页
1
···
11
12
13
14
15
16
17
18
19
20
下一页
2020年7月31日
LeetCode154. 寻找旋转排序数组中的最小值 II
摘要: 经过旋转后的数组,满足这样一个性质,最小值右边的元素,都大于等于最小值(因为这题有重复元素,所以有可能等于),最小值左边的元素,都大于等于最小值。 所以每一次二分,我们可以与当前区间的最左边或最右边进行比较,确定最小值的位置。 这里我们每次将区间中点的值nums[mid]与区间右端点nums[rig
阅读全文
posted @ 2020-07-31 21:04 machine_gun_lin
阅读(74)
评论(0)
推荐(0)
2020年7月30日
LeetCode153. 寻找旋转排序数组中的最小值
摘要: 题目说了是对升序的数组做旋转得到的数组,可以考虑二分。 因为做过旋转了,所以不能直接用二分。 找一下规律,旋转数组原来是升序的,那么最小的元素就是旋转前的第一个元素。 旋转之后,相当于把原来升序数组的前面某些部分放到了数组的后面,那么这个数组就满足,在最小的元素之前的部分数组依旧是升序的,然后最小的
阅读全文
posted @ 2020-07-30 11:21 machine_gun_lin
阅读(67)
评论(0)
推荐(0)
LeetCode152. 乘积最大子数组
摘要: 要求乘积最大的子数组(子数组一定都是连续的),可以暴力枚举子数组起点和终点,求和。但是肯定超时。 如果用动态规划,则只需要一遍扫描就可以得出结果。 可以用maxProduct[i]表示以i结尾的最大的子数组乘积。 如果所有nums[i]都是正数,则maxProduct[i]就是max(nums[i]
阅读全文
posted @ 2020-07-30 10:45 machine_gun_lin
阅读(130)
评论(0)
推荐(0)
LeetCode151. 翻转字符串里的单词
摘要: 题意是要把原字符串中所有的单词划分出来,倒序用一个空格的间隙来连接字符串,我们只需要划分出所有的单词,然后把它们连接起来,每两个单词之间放一个空格就好了。 分割空格之间的单词,很容易想到用双指针进行分割,只需要找到每个单词的第一个字母(也就是第一个不为空格的字母),然后左指针指向这个单词,右指针不断
阅读全文
posted @ 2020-07-30 10:23 machine_gun_lin
阅读(79)
评论(0)
推荐(0)
2020年7月28日
LeetCode第31场双周赛题解
摘要: 1523. 在区间范围内统计奇数数目 先计算从low到high一共有多少个数: int diff = high - low + 1; 找规律发现,如果low和high都是奇数,那么奇数个数就是diff上取整,其他情况奇数数目都是diff下取整。 class Solution { public: in
阅读全文
posted @ 2020-07-28 19:04 machine_gun_lin
阅读(133)
评论(0)
推荐(0)
2020年7月18日
LeetCode91. 解码方法
摘要: 经典dp问题,用dp[i]表示前i个字符解码方案的总数。 显然dp[0]=1(空字符也相当于一种解码方案), 然后从小到大递推计算dp数组,如果当前当前数字不是0(也就是大于等于1小于等于9),则当前字符可以连接在之前所有字符之后成为一个新方案。 当前字符是0是不行的,0不能映射成英文字母。 所以有
阅读全文
posted @ 2020-07-18 12:19 machine_gun_lin
阅读(173)
评论(0)
推荐(0)
LeetCode90. 子集 II
摘要: DFS枚举所有子集,对于每个数字,假设出现次数是cnt,则枚举这个数字的出现次数0,1, 2,.....cnt,其他数字同理。 所以解空间是指数级的。 要计算所有数字出现的次数,可以直接排序,这样同样的数字都是相邻的。 然后一个for循环枚举每个数的添加次数,假设一个数字的出现次数是cnt,则枚举它
阅读全文
posted @ 2020-07-18 11:02 machine_gun_lin
阅读(83)
评论(0)
推荐(0)
LeetCode89. 格雷编码
摘要: 找规律,格雷码的一种生成方法如下图。对于n先将n-1的所有格雷码复制一下,然后轴对称所有n-1的格雷码,然后前半部分补0,后半部分补1, 就得到了n的格雷码。 class Solution { public: vector<int> grayCode(int n) { vector<int> res
阅读全文
posted @ 2020-07-18 00:19 machine_gun_lin
阅读(123)
评论(0)
推荐(0)
2020年7月17日
LeetCode88. 合并两个有序数组
摘要: 归并两个已排序数组为一个数组,不同于归并排序的归并用一个额外的数组,这里在第一个数组预留出足够的空间,所以需要直接在第一个数组里存放原来的两个数组的所有元素。 归并排序里,是额外开一个数组,然后两个指针分别从第一个数组和第二个数组的开头进行比较,比较小的那一个元素加入新数组中,然后某个数组为空之后,
阅读全文
posted @ 2020-07-17 23:48 machine_gun_lin
阅读(128)
评论(0)
推荐(0)
LeetCode87. 扰乱字符串
摘要: 判断S2是否是S1的扰乱字符串。根据题目的定义,S1如果经过若干次对于部分子串的翻转操作能够得到S2,则S2是S1的扰乱字符串。 首先,如果S2是S1的扰乱字符串,那么S1中每个字符的出现次数必然和S2中每个字符的出现次数一致,也就是说,我们用两个字符串S3、S4备份一下S1和S2, 对S3和S4排
阅读全文
posted @ 2020-07-17 22:57 machine_gun_lin
阅读(147)
评论(0)
推荐(0)
上一页
1
···
11
12
13
14
15
16
17
18
19
20
下一页
公告