697. 数组的度

ID: 697 TITLE: 数组的度 TAG: Java,Python 解决方法: 方法一: 算法: 具有度数 d 的数组必须有一些元素 x 出现 d 次。如果某些子数组具有相同的度数,那么某些元素 x (出现 d 次)。最短的子数组是将从 x 的第一次出现到最后一次出现的数组。 对于给定数...

2019-08-14 12:24:54

阅读数 10

评论数 0

696. 计数二进制子串

ID: 696 TITLE: 计数二进制子串 TAG: Java,Python 解决方法: 方法一:按字符分组 我们可以将字符串 s 转换为 groups 数组表示字符串中相同字符连续块的长度。例如,如果 s=“11000111000000”,则 groups=[2,3,4,6]。 对于 “0”...

2019-08-14 12:14:21

阅读数 11

评论数 0

681. 最近时刻

ID: 681 TITLE: 最近时刻 TAG: Java 解决方法: 方法一:模拟 算法: 模拟时钟前进一分钟。每次向前移动时,如果当前时间能够被构造,则返回当前时间。 表示时间的方法是在 0<=t<24*60 范围内以整数 t 表示。然后小时数是 t/60,分钟...

2019-08-14 11:29:58

阅读数 10

评论数 0

695. 岛屿的最大面积

ID: 695 TITLE: 岛屿的最大面积 TAG: 深度优先搜索 解决方法: 方法一:深度优先搜索DFS(递归) 算法: 我们想知道网格中每个连通形状的面积,然后取最大值。 如果我们在一个土地上,以 4 个方向探索与之相连的每一个土地(以及与这些土地相连的土地,等等),那么所探索的土地总数...

2019-08-14 10:11:31

阅读数 11

评论数 0

694. 不同岛屿的数量

ID: 694 TITLE: 不同岛屿的数量 TAG: hash 解决方法: 方法一:通过网格散列 算法: 在开始的时候,我们需要找到每个岛屿,我们可以使用直接的深度优先搜索。最困难的部分是判断两个岛屿是否相同。 若两个岛是相同的那么这个岛可以通过平移变换成另一个岛,那么让我们把每个岛的左上角...

2019-08-14 09:50:14

阅读数 10

评论数 0

693. 交替位二进制数

ID: 693 TITLE: 交替位二进制数 TAG: 解决方法: 方法一:转换成字符串 算法: 让我们把给定的数字转换成一个二进制数字串。然后,我们应该简单地检查两个相邻的数字是否相同。 复杂度分析 时间复杂度:O(1)O(1)O(1)。对于任意输入,我们执行 O(w)O(w)O(w) 工作...

2019-08-13 17:53:54

阅读数 8

评论数 0

692. 前K个高频单词

ID: 692 TITLE: 前K个高频单词 TAG: Java 解决方法: 方法一:排序 算法: 计算每个单词的频率,并使用使用这些频率的自定义排序关系对单词进行排序。然后取前 k 。 复杂度分析 时间复杂度:O(mn)O(mn)O(mn)。 空间复杂度:O(n)O(n)O(n),使用了一个...

2019-08-13 17:42:58

阅读数 11

评论数 0

691. 贴纸拼词

ID: 691 TITLE: 贴纸拼词 TAG: Java 解决方法: 方法一:优化穷举搜索 答案是彻底搜索贴纸的组合。因为数据是随机化的,所以有很多启发式方法可以帮助我们更快地实现这一目标。 对于所有的贴纸,我们可以忽略目标单词中没有的任何字母。 当我们的候选答案不会小于我们已经找到的答案时...

2019-08-13 17:29:34

阅读数 20

评论数 0

690. 员工的重要性

ID: 690 TITLE: 员工的重要性 TAG: Java,Python 解决方法: 方法一:深度优先搜索DFS 算法: 让我们使用 emap = {employee.id -> employee} 快速查询员工。 现在要找出一个员工的总重要性,它将是该员工的重要性,加上该员...

2019-08-12 11:54:06

阅读数 11

评论数 0

689. 三个无重叠子数组的最大和

ID: 689 TITLE: 三个无重叠子数组的最大和 TAG: 解决方法: 方法一: 用一个数组 W 去考虑每个间隔的和,其中每个间隔都是给定的长度 K。要创建 W,我们可以使用前缀和,或者将间隔的和管理为沿数组滑动的窗口。 我们讨论如何简化问题:给定数组 W 和整数 W,i + K &...

2019-08-12 10:33:30

阅读数 12

评论数 0

688. “马”在棋盘上的概率

ID: 688 TITLE: “马”在棋盘上的概率 TAG: 动态规划 解决方法: 方法一:动态规划 算法: 令 f[r][c][steps] 代表马在位置 (r, c) 移动了 steps 次以后还留在棋盘上的概率,根据马的移动方式,我们有以下递归: f[r][c][steps]=∑dr,d...

2019-08-12 09:45:15

阅读数 17

评论数 0

686. 重复叠加字符串匹配

ID: 686 TITLE: 重复叠加字符串匹配 TAG: Java 解决方法: 方法一: 这个问题可以概括为“最小的 k 是什么,B 是 A*k 的子串?”我们可以试试每一个 k。 算法: 假设我们写了 S = A+A+A+... ,如果 B 是 s 的子串,我们只需要检查一些 S[0:],...

2019-08-08 12:25:42

阅读数 11

评论数 0

684. 冗余连接

ID: 221 TITLE: 最大正方形 TAG: Java 解决方法: 方法一: 算法: 复杂度分析 时间复杂度:O(mn)O(mn)O(mn)。 空间复杂度:O(n)O(n)O(n),使用了一个一维数组 dp。 ...

2019-08-08 11:10:34

阅读数 11

评论数 0

680. 验证回文字符串 Ⅱ

ID: 680 TITLE: 验证回文字符串 Ⅱ TAG: 贪心 解决方法: 方法一:暴力法 算法: 对于给定字符串中的每个索 i,让我们删除该字符,然后检查结果字符串是否是回文。如果是(或者原始字符串是回文),那么我们将返回 true 复杂度分析 时间复杂度:O(N2)O(N^2)O(N2)...

2019-08-08 10:34:02

阅读数 14

评论数 1

678. 有效的括号字符串

ID: 678 TITLE: 有效的括号字符串 TAG: 贪心,动态规划 解决方法: 方法一:暴力法 算法: 对于每个 * 号,让我们尝试两种可能性。 复杂度分析 时间复杂度:O(N∗3N)O(N * 3^{N})O(N∗3N)。其中 NNN 是字符串的长度。对于每个 * 号,我们尝试 3 个...

2019-08-08 10:09:32

阅读数 11

评论数 0

677. 键值映射

ID: 677 TITLE: 键值映射 TAG: map 解决方法: 方法一:暴力法 算法: 对于 Map 中的每个键,如果该键以给定的前缀开头,则将其添加到答案中。 复杂度分析 时间复杂度:每个插入操作都是 O(1)O(1)O(1).。每个求和操作都是 O(N∗P)O(N * P)O(N∗P...

2019-08-07 17:14:08

阅读数 11

评论数 0

676. 实现一个魔法字典

ID: 676 TITLE: 实现一个魔法字典 TAG: Java,Python 解决方法: 方法一:暴力法 算法: 如果一个字符中只有一个字符可以更改,即它们的汉明距离为1。 在搜索新单词时,我们只检查长度相同的单词。 class MagicDictionary(object): ...

2019-08-07 17:00:43

阅读数 11

评论数 0

675. 为高尔夫比赛砍树

ID: 675 TITLE: 为高尔夫比赛砍树 TAG: Java,Python,BFS 解决方法: 框架: 从 (0, 0) 开始,对于每棵树,按照高度顺序,我们将计算我们到下一棵树(并移动到那里)的距离,并将该距离添加到答案中。 我们定义距离函数 dist(forest, sr, sc, ...

2019-08-07 16:43:58

阅读数 9

评论数 0

674. 最长连续递增序列

ID: 674 TITLE: 最长连续递增序列 TAG: Java 解决方法:滑动窗口 算法: 每个(连续)增加的子序列是不相交的,并且每当 nums[i-1]>=nums[i] 时,每个此类子序列的边界都会出现。当它这样做时,它标志着在 nums[i] 处开始一个新的递增子序列...

2019-08-07 15:47:54

阅读数 11

评论数 0

673. 最长递增子序列的个数

ID: 673 TITLE: 最长递增子序列的个数 TAG: Java,Python,动态规划 解决方法: 方法一:动态规划 算法: 假设对于以 nums[i] 结尾的序列,我们知道最长序列的长度 length[i],以及具有该长度的序列的 count[i] 对于每一个 i<j ...

2019-08-07 15:37:56

阅读数 11

评论数 0

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