leetcode笔记
文章平均质量分 53
这个专栏主要是记录leetcode中的一些题目的解答方法,欢迎大家批评指正。
Herbert_Zero
这个作者很懒,什么都没留下…
展开
-
leetcode笔记:Invert Binary Tree
题目意图很明显,即翻转一棵二叉树。后面是几句话,大概的意思是:Google:我们有90%的工程师在使用你写的软件(Homebrew?),但你居然不会在白板上翻转一棵二叉树,真是操蛋。原创 2016-04-07 16:51:13 · 4627 阅读 · 0 评论 -
leetcode笔记:Counting Bits
题目大意是,给定一个非负整数num,对于每一个满足0 ≤ i ≤ num的数字i,计算这些数字的二进制表示中1的个数,并以数组vector的形式返回。原创 2016-04-07 15:29:10 · 4944 阅读 · 0 评论 -
leetcode笔记:Number of 1 Bits
题目的要求很简单,找出一个整数对应的二进制格式中有多少个'1'。原创 2016-03-28 18:36:31 · 1966 阅读 · 0 评论 -
leetcode笔记:House Robber III
题目的意思是,小偷找到了一个新的偷盗场所。这片区域只有一个入口,叫做“根”。除了根以外,每个屋子有且仅有一个父屋子。在踩点之后盗贼发现,所有的房间构造形成了一棵二叉树。如果两个直接相连的屋子在同时被盗窃,就会惊动警察。原创 2016-03-14 20:28:22 · 2425 阅读 · 0 评论 -
leetcode笔记:Maximum Product of Word Lengths
题目大意:给定一个字符串数组words,寻找length(words[i]) * length(words[j])的最大值,其中words[i]和words[j]两个单词不包含相同的字母。你可以假设每一个单词只包含小写字母。如果不存在这样的两个单词,结果返回0。原创 2016-03-07 16:59:24 · 2345 阅读 · 0 评论 -
leetcode笔记:Bitwise AND of Numbers Range
给定一个范围[m, n],其中 0 <= m <= n <= 2147483647,返回范围内所有整数的按位与,包括边界m和n。比如给定范围为[5, 7], 应返回4。单看题目描述,可以知道该题涉及到位运算。原创 2016-03-04 18:19:13 · 1446 阅读 · 2 评论 -
leetcode笔记:Rectangle Area
题目大意很简单,即计算二维平面上两个矩形的覆盖面积。两矩形通过其左下和右上的坐标进行定义。假设总面积不会超过int的最大值。根据常用的几何知识可以很快解决这个问题。原创 2016-02-29 17:14:47 · 1244 阅读 · 0 评论 -
leetcode笔记:Majority Element II
题目大意是,给定一个大小为n的整数数组,从中找出所有出现次数超过⌊ n/3 ⌋的元素。要求算法满足线性时间复杂度和O(1)的空间复杂度。原创 2016-02-28 20:52:55 · 1693 阅读 · 0 评论 -
leetcode笔记:Range Sum Query 2D - Immutable
题目大意是,给定一个二维矩阵,计算从下标(row1, col1)到下标: (row2, col2)的子矩阵的和。题目给出了几个测试用例。原创 2016-02-28 18:32:59 · 2156 阅读 · 0 评论 -
leetcode笔记:Contains Duplicate III
题目大意是,给定一个整数数组,判断其中是否存在两个不同的下标i和j,满足:| nums[i] - nums[j] | <= t 且下标:| i - j | <= k。原创 2016-02-26 15:43:16 · 2349 阅读 · 2 评论 -
leetcode笔记:Contains Duplicate II
题目的大意是,给定一个整数数组与一个整数k,当且仅当存在两个不同的下标i和j,满足:nums[i] = nums[j],且| i - j | <= k时返回true,反之返回false。原创 2016-02-24 18:31:03 · 2057 阅读 · 0 评论 -
leetcode笔记:Contains Duplicate
题目的大意是,给定一个整数数组,判断数组中是否包含重复的元素。若数组中任意一个数字出现了至少两次,函数返回true;否则,返回false。原创 2016-02-24 18:01:48 · 1340 阅读 · 2 评论 -
leetcode笔记:Find the Duplicate Number
题目的大意是,给定一个包含n + 1个整数的数组,其中每一个整数的大小均在[1, n]之间,证明其中至少有一个重复元素存在。同时假设数组中只有一个数字出现重复,找出这个重复的数字。原创 2016-02-22 23:59:25 · 2014 阅读 · 2 评论 -
leetcode笔记:Increasing Triplet Subsequence
题目大意是,给定一个无序数组,判断其中是否存在一个长度为3的递增子序列。原创 2016-02-22 17:19:10 · 1647 阅读 · 1 评论 -
leetcode笔记:Longest Increasing Path in a Matrix
题目的大意是,给定一个整数矩阵,计算其要求元素排列是递增的,球最长递增路径的长度。从任意一个矩阵位置出发,可向上下左右四个方向移动。不可以沿着对角线移动,也不能离开边界。(环绕也是不允许的)。题目还给出了两个测试用例。原创 2016-02-21 23:41:45 · 2607 阅读 · 1 评论 -
leetcode笔记:Missing Number
题目大意是,给定一个包含从0, 1, 2, ..., n, 选出的n个不同数字的数组,从中找出数组中缺失的那一个数。并给出一个简单的例子。原创 2016-02-19 14:33:22 · 1185 阅读 · 2 评论 -
leetcode笔记:Super Ugly Number
题目的大意是,编写程序寻找第n个“超级丑数“,超级丑数是指只包含给定的k个质因子的正数。原创 2016-02-18 22:36:55 · 1770 阅读 · 0 评论 -
leetcode笔记:Coin Change
题目大意是,给定不同面值的硬币(数值存放在数组coins)和一个金额总值amount。编写函数计算凑齐金额总值所最少需要的硬币数目。如果使用已有的硬币无法凑齐指定的金额,返回-1。原创 2016-02-18 16:54:36 · 5928 阅读 · 0 评论 -
leetcode笔记:Game of Life
根据维基百科条目 Conway's Game of Life(康威生命游戏),康威生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。原创 2016-02-18 00:06:18 · 2400 阅读 · 0 评论 -
leetcode笔记:Word Pattern
题目的大意是,给出一组模式(pattern)和一个字符串(str),判断字符串是否与模式相匹配,并给出了几个例子。原创 2016-02-15 15:24:57 · 1839 阅读 · 0 评论 -
leetcode笔记:Wiggle Sort
题目给出一个未排序的数组,调整元素的大小使其满足`nums[0] <= nums[1] >= nums[2] <= nums[3]`,要求in-place。原创 2016-02-14 14:52:45 · 1694 阅读 · 0 评论 -
leetcode笔记:Majority Element
题目说到,给定一个数组,内含n个元素。找出一个主元素,该元素在数组中出现的次数比其他元素出现的次数加起来还要多,即该元素的数量大于n/2。原创 2016-02-03 22:19:57 · 1272 阅读 · 0 评论 -
leetcode笔记:H-Index II
该题与一题的要求基本一致,只是多提供了一个条件,即传入的数组本身已经是升序排列的,因此实际上操作会方便许多。该题仍然可以使用H-Index方法从后往前遍历数组,即可计算出h指数,算法复杂度为O(n),但更快的方法是使用二分查找,复杂度降为O(logn)。原创 2016-02-01 16:12:35 · 1398 阅读 · 0 评论 -
leetcode笔记:H-Index
给定一个数组,记载了某研究人员的文章引用次数(每篇文章的引用次数都是非负整数),编写函数计算该研究人员的h指数。原创 2016-02-01 15:31:09 · 4276 阅读 · 3 评论 -
leetcode笔记:Patching Array
题目的大意是,给定一个数组nums和一个数n,求添加最少的数使得区间[1, n]中的每个数都可以由数组nums中元素累加组成。原创 2016-01-31 22:18:01 · 2495 阅读 · 0 评论 -
leetcode笔记:Perfect Squares
该题目的大意是,给出一个目标整数,算出由完全平方数累加得到目标整数的最小个数。比较好的解决方法是使用动态规划。原创 2016-01-29 23:57:49 · 1503 阅读 · 0 评论 -
leetcode笔记:Reverse Bits
题目的要求比较简单,输入一个32位的无符号整数,根据其二进制表示,输出与其二进制相对称的无符号整数。题目也给出了一个例子。原创 2016-01-29 17:29:56 · 1529 阅读 · 0 评论 -
leetcode笔记:Count Primes
题目有很多tips,大意是算出2~n之间有多少个素数。思路来自著名的埃拉托斯特尼筛法。原创 2016-01-27 23:05:58 · 1594 阅读 · 1 评论 -
leetcode笔记:Length of Last Word
该题的大意是,输入一串字符,输出最后一个单词的长度。原创 2016-01-27 16:25:46 · 1260 阅读 · 1 评论 -
leetcode笔记:Word Break
如果使用递归,会超时。这时使用动态规划即可解决问题,即将源字符串s从开始到结尾,分解成各个子串进行操作,对于这类字符串组合问题,需要掌握类似状态转移方程。原创 2016-01-25 23:48:08 · 1549 阅读 · 0 评论 -
leetcode笔记:Move Zeroes
题目的意思很明确,给定一个数组,将非零元素调整到前面,零元素放在数组后面,要求原位操作并使用尽量少的操作次数。原创 2016-01-23 11:41:42 · 1412 阅读 · 0 评论 -
leetcode笔记:Range Sum Query - Mutable
题目在Range Sum Query - Immutable一题的基础上增加的难度,要求在输入数组nums后,能够修改数组的元素,每次只修改一个元素。同样要实现求数组的某个区间和的功能。原创 2016-01-21 01:06:07 · 4860 阅读 · 0 评论 -
leetcode笔记:Range Sum Query - Immutable
给定一个数组nums,求出下标i和j之间元素的和,这里假设i一定是小于或等于`j`的,且数组nums一般是不变的。原创 2016-01-20 23:45:27 · 1706 阅读 · 0 评论 -
leetcode笔记:Divide Two Integers
题目的意思简单明了,就是要求不使用乘法、除法和取余mod,输入两个整数,输出除法操作的结果。原创 2016-01-20 22:47:48 · 1417 阅读 · 0 评论 -
leetcode笔记:ZigZag Conversion
这道题是就是原来的字符串的元素与锯齿化后的字符串的元素之间的关系原创 2016-01-18 23:59:54 · 1469 阅读 · 1 评论 -
leetcode笔记:Find Median from Data Stream
该题的经典做法是,维护一个最大堆和一个最小堆。最大堆存的是截至目前为止较小的那一半数,最小堆存放的是截至目前为止较大的那一半数,这样中位数只有可能是堆顶或者两个堆顶所对应两个数的平均值。原创 2016-01-14 22:02:25 · 1580 阅读 · 1 评论 -
leetcode笔记:Bulls and Cows
该题即是猜数字(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。原创 2016-01-13 21:02:28 · 2087 阅读 · 0 评论 -
leetcode笔记:Bulb Switcher
题目大意是,有n只初始处于关闭状态的灯泡。你首先打开所有的灯泡(第一轮)。然后,熄灭所有序号为2的倍数的灯泡。第三轮,切换所有序号为3的倍数的灯泡(开着的就关掉,关着的就打开)。第n轮,你只切换最后一只灯泡。计算n轮之后还有几盏灯泡亮着。原创 2016-01-13 16:23:43 · 1492 阅读 · 0 评论 -
leetcode笔记:Integer to English Words
题目的要求很简单,将一个整数翻译为英文说法。根据提示我们知道,数字的读法是有规律的,只需每3位作一次翻译处理即可。在循环之前,把可能用到的字符串(0-9、10-19、20、30、40、...、90等数的英语)进行归类,放在几个数组里,分情况使用。在累加字符串时注意空格的使用。原创 2016-01-12 18:51:24 · 1552 阅读 · 0 评论 -
leetcode笔记:Pascal's Triangle II
该题要求只输出第k行的元素值,并且要求空间复杂度为`O(k)`,因此,采用的方法是只使用一个定长的数组,用于存放每一行的元素值,对于每个新的行,可对原先存放的行从后往前扫描,主要分为以下三种情况:最后一个元素,直接等于1;对于下标为i的中间元素,有:`result[i] = result[i-1] + result[i]`;第一个元素,直接等于1;原创 2016-01-11 19:40:21 · 1207 阅读 · 1 评论