摘要:一、题目 1、审题 2、分析 给出一个二维数组,给出两个坐标。求这两个坐标之间的所有元素的和。 二、解答 1、思路 ①、 新建一个数组 sums[rows + 1][cols + 1],其中元素 sums[i+1][j+1] 用于储存 matrix 中从 [0, 0] 到 [i][j] 之间的元素和 阅读全文
posted @ 2018-11-29 22:05 skillking2 阅读(41) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,返回从下标 i 到 j 的元素之和。 二、解答 1、思路 ①、新建一个数组,如下标 i : 存储下标 0 ~ i 的元素之和。 ②、最终返回 nums[j] - nums[i]; 阅读全文
posted @ 2018-11-28 16:49 skillking2 阅读(49) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个包含 '('、')' 的字符串,去除最少的字符,使得左右括号能正确闭合。求出所有的正确闭合的字符串。 二、解答 1、思路 https://leetcode.com/problems/remove-invalid-parentheses/discuss/75027 阅读全文
posted @ 2018-11-28 16:36 skillking2 阅读(107) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 将二叉树的结构序列化为字符串形式表示,在通过这个字符串形式将此二叉树的结构展示出来! 二、解答 1、思路 序列化过程: 将二叉数以先序遍历的方式展示,并且使用 “X” 代表一个 null 节点,而且每个节点之间采用 “,”隔开。可以采用一个 StringBuilder 阅读全文
posted @ 2018-11-27 16:21 skillking2 阅读(51) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个无序的整形数组,求其中递增的最大序列的元素个数。 二、解答 1、思路 方法一、 采用 dp 数组,长度为 nums 的元素个数。 ①、dp[index] 记录当前下标 index 对应元素与前边的数组元素组成的最大递增序列的个数。 ②、dp 所有元素初始化为 1 阅读全文
posted @ 2018-11-27 16:05 skillking2 阅读(37) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 两个字符串数字中,位置相同且数字相同则 bull++;位置不同但数字相同则 cow++;统计 bull、cow 个数。 二、解答 1、思路 采用两个整形数组,num1[10], num2[10]; 遍历 secret、guess 相同位置的字符。 若字符相同 则 bul 阅读全文
posted @ 2018-11-26 15:38 skillking2 阅读(30) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给定一个数组,记载了某研究人员的文章引用次数(每篇文章的引用次数都是非负整数),编写函数计算该研究人员的h指数。 根据维基百科上对h指数的定义:“一名科学家的h指数是指在其发表的N篇论文中,有h篇论文分别被引用了至少h次,其余N-h篇的引用次数均不超过h次”。 例如,给 阅读全文
posted @ 2018-11-26 14:48 skillking2 阅读(97) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 实现一个数据结构,可以添加整形元素,并可以返回排序后的中位数。 二、解答 1、思路 采用两个 PriorityQueue。 ①、采用两个 PriorityQueue,PriorityQueue 具有对元素进行自动排序的功能。 ②、一个为 maxQueue,记录比中位数大 阅读全文
posted @ 2018-11-25 16:33 skillking2 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 你先选,能选 1~3个砖头,对手在选 1~3个砖头。若你和对手都很聪明,且能拿到最后一块砖头的人胜利,给出砖头总数 n,求你是否能赢。 二、解答 1、思路 由于是我们先拿,那么3个以内(包括3个)的石子,我们直接赢,如果共4个,那么我们一定输,因为不管我们取几个,下一个 阅读全文
posted @ 2018-11-25 15:29 skillking2 阅读(42) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出两个字符串,判断两个字符串的元素排列规则是不是一样。 二、解答 1、思路 方法一、 采用 Map<Character, String> 将 pattern 的字符作为 Key,str 切分成单词数组 arr,单词作为 Value。 若 pattern中字符数与 st 阅读全文
posted @ 2018-11-25 10:39 skillking2 阅读(46) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 编程实现 “LIFE” 这个游戏: ①、若 m 的周围8个邻居细胞中存活的细胞数 < 2,则此细胞从存活状态变为死亡状态; ②、若 m 的周围8个邻居细胞中存活的细胞数 = 2 或 = 3,则此细胞从存活状态变为存活状态; ③、若 m 的周围8个邻居细胞中存活的细胞数 阅读全文
posted @ 2018-11-24 22:26 skillking2 阅读(79) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 一个长度为 n+1 的整形数组,元素值为 1~ n 之间。其中一个元素重复了多次,其他元素只出现一次。求出多次出现的那个元素。 二、解答 1、思路 类似: 142. Linked List Cycle II //这道题的关键在于0处是没有索引指向的,将数组视为静态链表, 阅读全文
posted @ 2018-11-23 22:29 skillking2 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,将 0 全部提到后边,并保持非 0 元素的排列顺序。 二、解答 1、思路 方法一、 采用两个指针,index1 指向 第一个 0 的下标。i 指向新出现的元素的下标。 若 nums[i] = 0,则 i++; 若 nums[i] != 0, 且 i ! 阅读全文
posted @ 2018-11-23 21:20 skillking2 阅读(38) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出正整数 n,判断 n 由几个平方数的和构成。 二、解答 1、思路 方法一、 动态规划! ①、创建大小为 n + 1 的数组。其中,初始化时 dp[0] = 0,其他元素值为 Integer.Max_VALUE。 ②、之后,依次给 dp 从 1 开始的下标元素进行赋值 阅读全文
posted @ 2018-11-22 22:20 skillking2 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 求出一个数组中连续的元素中缺失的那一个。 二、解答 1、思路 方法一、 将数组中的元素与下标进行对应。最终与下标不一致的元素即为缺失德那一个。 方法二、 采用异或 ^ 运算符。将下标与元素值一起做 ^ 操作。出现了两次的元素最终会被消去,只剩下要求的出现一次的元素。 方 阅读全文
posted @ 2018-11-22 13:30 skillking2 阅读(49) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整数 num,若其大于0 且素数因子只含有 2、3、5 则判定为 ugly 数。判断 num 是否为 ugly 数。 二、解答 1、思路 若num 取余 2、3、5为 0, 则 num / (2、3、5)。若最终 num 为 1,则 为 ugly 数 阅读全文
posted @ 2018-11-21 22:05 skillking2 阅读(46) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 在线性时间复杂度、常量空间开销的情况下统计出一个整形数组中只出现一次的两个数(其他的数都是出现2次)。 二、解答 1、思路 ①、对数组所有元素进行异或(^) 操作,得到只出现 1 次的这两个数的异或结果 diff。 ②、diff &= -diff ,得到只出现一次的两个 阅读全文
posted @ 2018-11-20 15:43 skillking2 阅读(43) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个运算式的字符串,求加上括号后的所有可能结果。 二、解答 1、思路 采用递归方式。 碰到操作符后就将运算式分为前后两部分,递归调用此方法算出前后两部分的所有运算结果。在根据此操作符将前后两部分的结果进行操作。最终将结果存于 List中进行返回。 可以通过一个 Ma 阅读全文
posted @ 2018-11-20 14:51 skillking2 阅读(65) 评论(0) 推荐(0) 编辑
摘要:因为老板要我爬网易云的数据,要对歌曲的评论进行相似度抽取,形成多个歌曲文案,于是我就做了这个爬虫!在此记录一下! 一、分析网易云 API 为了缓解服务器的压力,网易云会有反爬虫策略!我打开网易云歌曲页面, F12 发现看不到我要的数据,明白了!他应该是到这个页面在发送请求获取的歌词、评论信息!于是我 阅读全文
posted @ 2018-11-14 20:17 skillking2 阅读(1689) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个二维数组,每一行的元素、每一列的元素均有序。在此数组中查找 target 元素。 二、解答 1、思路 方法一、 在每一行中用二分查找法。 方法二、 从二维数组的右上角开始向前、向下定位: ①、若 target 小于当前元素,则 target 不可能在当前列,因为 阅读全文
posted @ 2018-11-11 17:45 skillking2 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 求一棵二叉树中两个节点相连的路径中的最多的边数。 二、解答 1、思路 等价于求一个节点作为根节点时,Max (左孩子的深度 + 右孩子深度). ① 、采用全局变量 max 记录 Max(左孩子深度 + 右孩子深度) ②、新建一个 getMaxDepth(root) 方法 阅读全文
posted @ 2019-07-18 17:42 skillking2 阅读(47) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 一个整形数组!元素值为 1~size; 出现的元素次数为 1~2 次。 求出所有 1~size 中没有出现的整数! 二、解答 1、思路 由于元素值都为 1~size之间。所以可以将数组下标 index 进行联系。 ① 遍历数组,将出现的元素值对应的数组下标的元素都标记为 阅读全文
posted @ 2019-07-17 12:09 skillking2 阅读(58) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 求出所有s子串的下标,从该下标开始的连续子字符串包含 p 中的所有字符(可以无序); 以 List方式返回所有下标; 二、解答 1、思路 以滑动窗口的方式统计所有符合的子串! 阅读全文
posted @ 2019-07-16 20:28 skillking2 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、滑动窗口题型模板 二、LeetCode 中 几个滑动窗口套用模板实现 1、 76. Minimum Window Substring https://leetcode.com/problems/minimum-window-substring/description/ 2、3 Longest S 阅读全文
posted @ 2019-07-16 20:21 skillking2 阅读(1055) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 一个非空整形数组,返回数组中出现次数最多的 k 个数。 其中 1 <= k <= 不同的数值个数。 二、解答 1、思路 方法一、 ① 新建一个 List<Integer, Integer>[] : 其中数组下标表示频率(count); List 为数字; ② 新建一个 阅读全文
posted @ 2019-07-15 13:22 skillking2 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 求所有的单条路径中符合和为 sum 的路径条数。结尾节点不需要为叶子节点。 二、解答 1、思路 方法一、 采用递归的方法。 首先求从 根节点开始的路径满足和为 sum 的条数; 其次求从 根的左孩子节点开始的路径满足和为 sum 的条数; 最终求从 根的右孩子节点开始的 阅读全文
posted @ 2019-07-15 12:56 skillking2 阅读(35) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出数字 num, 求出 0~num 的每个数字的二进制形式中包含的 字符 ‘1‘ 的个数。 二、解答 1、思路 方法一、 依次计算 1~n 每个数字的二进制形式中包含的 ‘1‘ 的个数。 方法二、 采用 f[n] = f[n >> 1] + (n & 1) 计算数字 阅读全文
posted @ 2019-07-01 11:12 skillking2 阅读(40) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一棵二叉树,取二叉树中的节点值,其中不能获取相邻层的二叉树节点。 二、解答 1、思路 方法一、 分两种情况, 情况一: root.val + root.left.left.val + root.left.right.val + root.right.left.val 阅读全文
posted @ 2019-06-30 16:21 skillking2 阅读(54) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个正整数数组。为每个元素添加 + 、- 符号,然后将元素相加,求共有多少种组合使得和为 S; 二、解答 方法一、 ① 将此问题转化为取数组中若干元素,使得元素和为某一定值的问题: 假设正数集合为 P, 负数集合为 N;则有: sum[P] - sum[N] = S 阅读全文
posted @ 2019-05-30 21:18 skillking2 阅读(57) 评论(0) 推荐(0) 编辑
摘要:一、题目 1、审题 2、分析 给出一个整形数组,判断是否能将其拆分成两个元素和相等的子数组。 二、解答 1、思路 ① 将数组所有元素求和得到 sum, 若 sum %2 == 1 ,则不可切分。 ② 将 sum 除以 2,即 sum /= 2; 则 问题变为:从 数组中取出若干个元素,使得其和为 s 阅读全文
posted @ 2019-05-30 12:03 skillking2 阅读(44) 评论(0) 推荐(0) 编辑