04 2020 档案

摘要:一、题目说明 题目581. Shortest Unsorted Continuous Subarray,求最大连续子数组(如果该子数组有序,则整个数组有序)的长度。难度是Easy! 二、我的解答 不动脑子,将数组排序,然后从左到右比较,再从右到左比较。即可获得最短子数组的长度。 性能如下: 三、优化 阅读全文
posted @ 2020-04-30 08:02 siwei718 阅读(97) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目543. Diameter of Binary Tree,计算二叉树的直径。直径是任意两个节点间的路径的最大值。难度是Easy! 二、我的解答 这个题目看懂不难,计算左子树的高度,右子树的高度,直径为二者之和。这里要注意的是,要计算每个节点的直径人,然后求最大直径,而不是单求树根的 阅读全文
posted @ 2020-04-29 09:45 siwei718 阅读(108) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目560. Subarray Sum Equals K,给一列整数和一个整数k,找到所有子数组和是k的个数。难度是Medium! 二、我的解答 这个题目第一印象是用dp,很快代码就写好了。然而 ,其中 代码如下: 性能如下: 阅读全文
posted @ 2020-04-28 09:53 siwei718 阅读(97) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目494. Target Sum,给定一列非负整数,一个目标数S,给定每个数一个 号,计算有多少组合可以生成S的值。难度是Medium! 二、我的解答 最直接的方案就是对每一个数 ,可以正,可以负,通过递归就可以枚举所有情况。 性能如下: 三、优化措施 设 表示用数组中的前 i 个元 阅读全文
posted @ 2020-04-27 08:51 siwei718 阅读(118) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目448. Find All Numbers Disappeared in an Array,给定有n个数的数组,每个数`1 findDisappearedNumbers(vector& nums){ vector res; int len = nums.size(); for(in 阅读全文
posted @ 2020-04-26 09:44 siwei718 阅读(91) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目437. Path Sum III,给定一个二叉树和整数sum,计算路径和是sum的数量,其中路径只能是从父节点向下的。难度是Easy! 二、我的解答 这个题目绝对不是Easy!最直观的想法,先判断根节点是否有路径,然后判断左子树,右子树是否有路径。 性能如下: 三、优化措施 网上 阅读全文
posted @ 2020-04-25 12:00 siwei718 阅读(90) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目438. Find All Anagrams in a String,给一个字符串s和非空字符串p,在s中找到所有p的相同字母异序词的start位置。难度是Medium! 二、我的解答 找同源词,有一个类似的题目 49. Group Anagrams ,这样的话,本题目也同样的思路 阅读全文
posted @ 2020-04-24 08:20 siwei718 阅读(94) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目406. Queue Reconstruction by Height,队列每个元素包括 ,其中h是身高,k是身高不低于h的数量,请按照k和h重构队列。难度是Medium! 二、我的解答 这个题目理论上不难,但是细节不好处理。代码如下: 性能如下: 三、优化措施 这个用到map,用 阅读全文
posted @ 2020-04-23 11:31 siwei718 阅读(87) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目416. Partition Equal Subset Sum,给定一个只包含正整数的数组,判断数组能否分成2个子数组,且其和相等。难度是Medium! 二、我的解答 这个题目,类似背包问题,用递归算法可解。但是需要先降序排序。 性能如下: 三、优化措施 无 阅读全文
posted @ 2020-04-22 09:05 siwei718 阅读(76) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目394. Decode String,给定一个编码后字符串,解码字符串。难度是Medium! 二、我的解答 解析字符串,这个题目是栈的典型应用。唯一的复杂度在于嵌套的处理。 性能如下: 三、优化措施 无 阅读全文
posted @ 2020-04-21 08:18 siwei718 阅读(106) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目347. Top K Frequent Elements,从数组中找出现频度最高的k个数。难度是Medium! 二、我的解答 求出现频度最高的数,首先用hash计算各个数出现的频度,然后找出前k个。 性能如下: 三、优化措施 用大根堆进行优化: 性能如下: 阅读全文
posted @ 2020-04-20 08:14 siwei718 阅读(129) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目309. Best Time to Buy and Sell Stock with Cooldown,计算买卖股票的最大利润,卖出股票后第二天不能买入,需要冷却一天。 二、我的解答 这个题目,我没做出来。看了高手的解答,才知道用dp。 性能如下: 三、优化措施 dp状态方程怎么来? 阅读全文
posted @ 2020-04-19 12:41 siwei718 阅读(172) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目338. Counting Bits,给定一个正整数n,返回从0 n之间所有数组对应二进制数包含1的个数。难度是Medium!复杂度要求是O(n)。 二、我的解答 这个题目用dp,其实是非常简单的: 性能如下: 三、优化措施 无 阅读全文
posted @ 2020-04-18 16:44 siwei718 阅读(81) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目337. House Robber III,所有的房子连成二叉树状,不能“抢”直连的两个房间,请问最多可以抢到多少。难度是Medium! 二、我的解答 惭愧,这个题目思路始终不对。提交了n次也不正确,看了正确的思路:爷爷节点能偷到的最大钱=max(4个孙子偷的钱 + 爷爷的钱,两个 阅读全文
posted @ 2020-04-17 10:22 siwei718 阅读(77) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目312. Burst Balloons,有n个气球编号 ,每个气球上有一个数字,存在数组nums中。每当戳破一个气球i的时候,可以获得 个硬币。求能获得的最大硬币数。难度是Hard! 二、我的解答 这个题目,没解答出来。 先假设第一个被戳爆的气球为x,则x两边的气球则产生了依赖;那 阅读全文
posted @ 2020-04-16 08:00 siwei718 阅读(107) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目621. Task Scheduler,给定一列字符列表(A~Z)表示CPU执行的任务,可以任意执行,每个任务在1单位时间执行完成,CPU在一个单位时间内可以执行一个任务,或者处于IDEL状态。两个相同类型任务必须有n单位冷却时间。计算任务执行所需的最少时间。 二、我的解答 看到这 阅读全文
posted @ 2020-04-16 07:58 siwei718 阅读(111) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目322. Coin Change,给定一组不同面值的硬币,计算给定的总金额可以用硬币凑成的最小数量。难度是Medium! 二、我的解答 这个题目,思考了一下,和前面的 有点类似,属于求最优解的问题。解答方法无外乎用递归,或者dp。但是这个没做出来,由于没有找到 最优子结构 。网上找 阅读全文
posted @ 2020-04-15 17:53 siwei718 阅读(154) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目300. Longest Increasing Subsequence,给一列无序的整数,找出最大递增序列的长度。难度是Medium! 二、我的解答 这个题目用dp解决,开始想简单了。其中 表示,前面比 小的数量且递增的个数。 性能如下: 三、优化措施 阅读全文
posted @ 2020-04-14 08:20 siwei718 阅读(123) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目297. Serialize and Deserialize Binary Tree,序列号和反序列化二叉树。难度是Hard! 二、我的解答 这个题目用了3个小时,用的非递归遍历算法。用stack实现: 性能如下: 三、优化措施 无 阅读全文
posted @ 2020-04-13 09:13 siwei718 阅读(92) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目295. Find Median from Data Stream,数据流的中位数(数据为奇数个,则为中间的;否则为中间2个数的平均数)。 二、我的解答 用一个数组实现,但是超时。改用插入排序如下: 三、优化措施 用2个优先级队列实现: 性能如下: 阅读全文
posted @ 2020-04-12 14:08 siwei718 阅读(104) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目283. Move Zeroes,给定一组数,将该组数中的0移动末尾,其他数据相对位置不变。 二、我的解答 性能 阅读全文
posted @ 2020-04-11 07:57 siwei718 阅读(87) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目279. Perfect Squares,给定一个正整数n,找到m个数其平方和刚好是n。求m的最小值,难度是Medium! 二、我的解答 bfs算法: 性能如下: 阅读全文
posted @ 2020-04-10 08:08 siwei718 阅读(132) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目253.Meeting Rooms II,给定一列数,其中每个数表示会议开始、结束时间,计算最少需要的会议上的数量。难度是Medium! 二、我的解答 这个题目读懂后,在纸上画上坐标轴,画上各个会议时间的区间,然后从最早开始的会议开始,重叠最大部分即是最大会议室的数量。 从“0”开 阅读全文
posted @ 2020-04-09 16:00 siwei718 阅读(113) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目240. Search a 2D Matrix II,从一个m n的二维矩阵查找一个整数,每一行从左到右递增,每一列从上到下递增。 二、我的解答 先计算矩阵中点 ,然后将矩阵分成4个区间: 性能如下: 阅读全文
posted @ 2020-04-08 08:08 siwei718 阅读(99) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目239. Sliding Window Maximum,给一个数组,和窗口长度,窗口每次向右滑动1位,返回滑动窗口的最大值。时间复杂度要求是线性。 二、我的解答 最直接的办法就是 ,但是性能不足,复杂度是O(kN): 性能如下: 三、优化措施 用双端队列实现: 性能如下: 阅读全文
posted @ 2020-04-07 13:21 siwei718 阅读(112) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目238. Product of Array Except Self,给n个整数,返回一个数组,每个元素都是原数组除了该位置元素外的乘积。不能用除法,复杂度要求是O(n)。难度是Medium! 二、我的解答 看到这个问题,我第一想法就是求所有元素的乘积,然后就简单了。但是不允许使用除 阅读全文
posted @ 2020-04-06 08:40 siwei718 阅读(91) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目236. Lowest Common Ancestor of a Binary Tree,在一个二叉树中找两个节点的最近公共祖先。难度是Medium! 二、我的解答 这个用二叉树的递归遍历,稍加改造即可: 性能如下: 三、优化措施 其他方法,暂时想不起来。 阅读全文
posted @ 2020-04-05 06:59 siwei718 阅读(142) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目208. Implement Trie (Prefix Tree),实现trie,包括insert、search、startsWith。 二、我的解答 Trie树,又叫“字典树”,“前缀树”。实现代码如下: 性能如下: 三、优化措施 阅读全文
posted @ 2020-04-04 18:25 siwei718 阅读(92) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目206. Reverse Linked List,翻转一个链表。难度是Easy!可以递归,也可以非递归。 二、我的解答 翻转,这个确实不难,非递归算法: 性能如下: 三、优化措施 用翻转链表法实现: 阅读全文
posted @ 2020-04-03 16:55 siwei718 阅读(111) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目200. Number of Islands,在一个0(代表水)和1(代表陆地)组成的2d地图中,计数“岛屿”的数量。 二、我的解答 本题目计算图的最大连通分量,可以用图的深度优先遍历,也可用图的广度优先遍历。 深度优先遍历算法,代码如下: 性能如下: 阅读全文
posted @ 2020-04-02 09:45 siwei718 阅读(151) 评论(0) 推荐(0) 编辑
摘要:一、题目说明 题目234. Palindrome Linked List,判断一个链表是否是回文。难度是Easy! 二、我的解答 这个题目,时间复杂度要求O(n),空间复杂的O(1)。如果不按照上述要求,回文还是简单的。 比如,将链表放到数组中,然后前后比较就是了。 下面用的是另外一种思路,先找到链 阅读全文
posted @ 2020-04-01 08:13 siwei718 阅读(80) 评论(0) 推荐(0) 编辑