首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
machine_gun_lin
掘友等级
学生
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
15
文章 15
沸点 0
赞
15
返回
|
搜索文章
最新
热门
LeetCode526. 优美的排列
题目说了N不会超过15,这就是在暗示我们用DFS。 直接DFS出1~N的排列,然后判断一下是否满足条件。 不过这里要剪枝一下,不需要枚举出所有的排列之后逐个判断,对于某个排列的某一位u,如果已经不满足条件了,即不满足u % i == 0 或者 i % u == 0,那么就无需枚…
LeetCode525. 连续数组
题目说数组长度最长可能到50000,所以如果暴力枚举子数组的起点、终点,再计算数组和,复杂度就是o(n^3),肯定超时。 可以预处理出前缀和,这样只需要枚举起点和终点即可,但时间复杂度依然是O(n^2), 也不行。 这里需要一点奇技淫巧,因为数组只包含有0和1,如果一段子数组含…
LeetCode524. 通过删除字母匹配到字典里最长单词
这题和LeetCode522. 最长特殊序列 II类似,都是在一个字符串数组中找出最长的一个“特殊序列”。 思路也和522题类似,都是对字符串数组按照长度从大到小排序,枚举的时候也是按照字符串长度从大到小枚举,只不过这题里我们要找到最长的,属于字符串s子序列的字符串。 判断某个…
LeetCode523. 连续的子数组和
因为子数组是连续的,所以判断连续的子数组的和时,我们往往开一个前缀和数组预处理出所有数的前缀和,这样能够降低求子数组的和的时间复杂度。 这题需要单独处理k为0的情况,由于数组所有元素都是非负数,所以当k为0时,如果存在两个相邻的数的值都为0,则返回true,否则返回false。…
LeetCode522. 最长特殊序列 II
可以将字符串数组按照长度从大到小进行排序,然后从前往后遍历,找到第一个特殊序列,这个特殊序列的长度就是答案,如果遍历完数组,都没有找到特殊序列,这返回-1。 (1)如果这个字符串存在和它相同的字符串(排序后这两个字符串是相邻的),则这个字符串不是特殊序列。 (2)从最开始(长度…
LeetCode521. 最长特殊序列 Ⅰ
根据题意,最长特殊序列就是一个字符串独有的最长子序列,也就是说找到不是另一个字符串子序列的最长子序列。 题目给了两个字符串,如果两个字符串长度不一致,那么长的那个字符串肯定不是短的字符串的子序列,直接返回长的字符串的长度即可。 如果两个字符串长度一致,只有当两个字符串相等时,才…
LeetCode520. 检测大写字母
题目给出了正确的大写用法的三种情况,直接根据情况判断即可。 首先要判断第一个字母是否是大写字母,如果第一个字母不是大写字母,那么单词后面如果出现小写字母,这个单词就不是正确的大写用法。 如果第一个字母是大写字母,就判断从第二个字母开始到单词结尾的所有字母是否都是小写字母或者都是…
LeetCode519. 随机翻转矩阵
因为n_rows和n_cols最大能到10^4,所以不能开二维数组,因为那样空间复杂度回到10^8。 题目说了调用flip和reset的次数加起来不会超过1000次,所以矩阵是比较稀疏的,我们只需要记录所有1的位置即可。 我们可以用一个哈希表记录所有1的位置。为了方便,我们把二…
LeetCode518. 零钱兑换 II
用dp[i]表示当面值为i的时候,不同的方案个数。目标是求出凑出amount的方案个数,也就是dp[amount]。 所以凑出j的所有方案里一定包含有凑出j - coins[i]的方案,在这个方案的基础上加上一枚coins[i]就得到金额j了。 dp[j] += dp[j - …
LeetCode517. 超级洗衣机
首先,我们可以把所有洗衣机内的衣服数量累加求和,得到总的衣物的数量sum,假设洗衣机的数量为n,如果sum % n不为0,则无解,因为无法让所有洗衣机的数量相同。 如果sum % n为0,我们求出sum / n的结果avg,也就是最终当所有洗衣机衣服数量相同时每台洗衣机的衣服数…
下一页
个人成就
文章被点赞
6
文章被阅读
42,950
掘力值
1,411
关注了
19
关注者
4
收藏集
11
关注标签
33
加入于
2017-10-05