leetcode
sir_TI
成长吧,骚年!
展开
-
Top 100 Linked Question 修炼------第338题
338.Counting Bits题目链接题目解释:给出一个非负整数num.对于每个数字i而言,计算从0~num中每个数字在二进制中包含1的个数。最后的结果通过数组返回。Example 1:Input: 2Output: [0,1,1]Example 2:Input: 5Output: [0,1,1,2,1,2]Follow up:很自然的想到时间复杂度...原创 2019-06-27 21:52:54 · 219 阅读 · 1 评论 -
Top 100 Linked Question 修炼------第226题、第234题
226.Invert Binary Tree题目链接题目解释:翻转一棵二叉树。Example:Input: 4 / \ 2 7 / \ / \1 3 6 9Output: 4 / \ 7 2 / \ / \9 6 3 1题目分析:首先最简单的就是采用递归的方式:我们需要...原创 2019-05-16 15:05:57 · 153 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第208题
208.Implement Trie (Prefix Tree)题目链接题目解释:完成一个triez这样的数据结构,要求其具备有插入(insert)、查找(search)、开始元素(startsWiths)方法。Example:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); //...原创 2019-05-10 12:50:36 · 144 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第207题
207.Course Schedule题目链接题目解释:总共有n种的课你需要去上,这些课标号从0到n-1。你上某些课程之前需要有一些先修课程,如你想要参加课程0,那么你必须先学习完课程1,这个可以采用一个配对来表示:[0,1]。给出总的课程数以及先修课程匹配对,判断一下,你是否能修完所有的课程?Example 1:Input: 2, [[1,0]] Output: tru...原创 2019-05-10 10:35:18 · 165 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第221题
221.Maximal Square题目链接题目解释:给出一个二维数组,里面的元素全都是0和1,找到最大的正方形的面积(全部由‘1’组成的面积)。Example:Input: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0Output: 4题目分析:实际来说,本题刚看过来是没有具体的思路的,然后分析题目可得,我们要求最大的正方形面积,...原创 2019-05-15 16:00:31 · 137 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第169题、第198题
169.Majority Element题目链接题目解释:给出一个长度为n的数组,找到主元素。这个主元素是在这个数组中出现的次数超过了数组长度的一半。假设这个数组非空以及主元素是存在的。Example 1:Input: [3,2,3]Output: 3Example 2:Input: [2,2,1,1,1,2,2]Output: 2题目分析:数组的长度我们可以...原创 2019-05-06 12:53:08 · 142 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第200题、第206题
200.Number of Islands题目链接题目解释:给出一个二维的数组,里面只是包含字符‘0’和字符‘1’,其中字符‘0’代表水,字符‘1’代表岛屿。岛屿是被水所环绕同时也是被垂直或者水平方向的岛屿相连接。假设所有边缘的部分都是被水所环绕Example 1:Input:11110110101100000000Output:1解释:上面的所有的字符‘1’...原创 2019-05-08 16:23:55 · 119 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第148题、第152题
148.Sort List题目链接题目解释:将一个链表进行排序,要求时间复杂度为O(nlogn),空间复杂度为O(1)Example 1:Input: 4->2->1->3Output: 1->2->3->4Example 2:Input: -1->5->3->4->0Output: -1->0-&...原创 2019-04-26 11:15:26 · 149 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第142题
142.Linked List Cycle II题目链接题目解释:给出一个链表,如果这个链表有环的话,那么找到环的入口点,如果链表没有环,那么返回NULL为了表示给定的链表里面是否有环,我们给定一个标志位pos,如果pos等于0,最后一个结点是指向头结点,如果pso= -1,那么这个给定的链表里面没有环。Example 1:Input: head = [3,2,0,-4],...原创 2019-04-24 16:19:50 · 187 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第155题、第160题
155.Min Stack题目链接题目解释:设计一个栈的数据结构,使得这个数据结构能够支持入栈、出栈、取得栈顶元素以及在线性时间内找到最小的元素。push(x) -- 将x元素入栈 pop() -- 将栈顶元素从栈中移除 top() -- 获取栈顶元素 getMin() -- 在栈中找到最小的元素Example:MinStack minStack = new MinSt...原创 2019-04-29 10:42:50 · 174 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第215题
215.Kth Largest Element in an Array题目链接题目解释:在未排序的数组中找到第k大的数。注意:第k大的数是指在排序中的第k大的数,而不是在原始数据中的第k个数。Example 1:Input: [3,2,1,5,6,4] and k = 2Output: 5上面的最后一句话的解释到具体例子中就是找到第2大的数,将输入排序为[1,2,3,...原创 2019-05-14 09:16:25 · 126 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第240题、第279题
240.Search a 2D Matrix II题目链接题目解释:写出一个高效的算法,在mxn的数组中找到给定的元素,这个数组有以下特点:在每一行,元素都是按照升序进行排列的; 在每一列,元素都是按照升序进行排列的Example:考虑给定以下的数组:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6,...原创 2019-05-28 17:00:24 · 168 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第337题
337.House Robber III题目链接题目解释:小偷又找到了一个新的偷窃场所啦。到达这个区域只有唯一的入口,这个入口叫做“root",与根相邻的位置,每一个房间只有一"双亲房间",在逛了一遍之后,这个聪明的小偷发现,所有的房屋连接起来是一棵二叉树。如果直接相连的两个房子在同一天晚上被破门而入的话,警察就会到来。求:在不惊动警察的情况下,这个小偷一天晚上能够偷到的最大数量的钱...原创 2019-06-23 21:08:53 · 153 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第309题
309.Best Time to Buy and Sell Stock with Cooldown题目链接题目解释假设你有一个数组,数组里面的第i个元素是第i天的股票的价格。设计一个算法找到最大的收益,你可以完成任意次数的交易(即可以买卖一个股票多次),但是存在如下的限制:你不能一次进行多个交易(比如:你在买股票之前必须卖掉股票) 在卖了你的股票之后,你在卖股票的下一天不能...原创 2019-06-11 16:45:05 · 172 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第301题
301.Remove Invalid Parentheses题目链接题目解释:删除最少的括号使得输入的括号匹配(有效),返回所有有效的括号匹配方式注意:输入的字符中不仅仅只是有括号,也存在字符。Example 1:Input: "()())()"Output: ["()()()", "(())()"]Example 2:Input: "(a)())()"Out...原创 2019-06-10 15:33:33 · 192 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第300题
300.Longest Increasing Subsequence题目链接题目解释:给出一个没有排序的整型数组,找到最长的升序序列的长度。Example:Input: [10,9,2,5,3,7,101,18]Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], therefo...原创 2019-06-10 11:22:08 · 164 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第322题
322.Coin Change题目链接题目解释您将获得不同面额的硬币和总金额。 编写一个函数来计算构成该数量所需的最少数量的硬币。 如果这笔钱不能由任何硬币组合弥补,则返回-1。Example 1:Input: coins = [1, 2, 5], amount = 11Output: 3 Explanation: 11 = 5 + 5 + 1Example 2...原创 2019-06-14 16:13:18 · 199 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第297题
297.Serialize and Deserialize Binary Tree题目链接题目解释:序列化是一个将数据结构或者对象转换为一个序列化的比特的过程,在进行这个操作之后,数据能够被存储到文件中或者内存缓冲区,或者通过网络连接链路传输,以便稍后在相同或另一个计算机环境中重建。设计一个算法,去序列化和解序列化一个二叉树,关于你的算法是如何序列化/反序列化工作的没有限制,你仅仅需...原创 2019-06-01 22:13:06 · 221 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第283题、第287题
283.Move Zeroes题目链接题目解释:给出一个nums数组,写一个方法将所有的0移动到数组的末尾,但是不改变原来数组中其他元素的顺序。Example:Input: [0,1,0,3,12]Output: [1,3,12,0,0]Note:你必须是采用就地调换,空间复杂度为O(1) 最小话元素的操作。题目分析:首先,不考虑其他注意事项,我们可以申请一...原创 2019-05-31 20:52:58 · 152 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第312题
312.Burst Balloons题目链接题目解释给出n个气球,他们的角标从0到n-1。每个气球上面都画有数字,代表数组中的元素。现在要求你将所有的气球都爆破,如果你选择爆破第i个气球,那么你就会获得nums[left]*nums[i]*nums[right]枚硬币。在这里left和right是和i相邻的角标。在爆破第i个气球之后,left和right代表的气球变成相邻。你如何...转载 2019-06-13 10:05:05 · 203 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第238题、第239题
238.Product of Array Except Self题目链接题目解释:给出一个含有n个整数的数组(n>1),返回这样一个数组:数组中的元素为除可当前角标的元素外的所有元素之积。Example:Input: [1,2,3,4]Output: [24,12,8,6]注意:解决这个问题的时候不能采用除法,并且时间复杂度需要为O(n).更进一步:你能...原创 2019-05-23 15:03:32 · 141 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第139题、第141题
139.Word Break题目链接题目解释:给出一个非空的字符串和一个包含多个单词的wordDict,判断s是否能够被划分为包含wordDIct中的单词的序列。注意:在划分的过程中,在词典中相同的单词可能会被使用多次; wordDict中不包含重复的元素Example1Input: s = "leetcode", wordDict = ["leet", "code"]...原创 2019-04-24 10:28:14 · 162 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第128题、第136题
128.Longest Consecutive Sequence题目链接题目解释:给出一个未排序的数组,找到最长的连续元素序列的长度。要求:算法的时间复杂度为O(n)Example:Input: [100, 4, 200, 1, 3, 2]Output: 4Explanation: The longest consecutive elements sequence is...原创 2019-04-19 09:51:11 · 250 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第105题、第114题
105.Construct Binary Tree from Preorder and Inorder Traversal题目链接题目意思:已知先序和中序,建立一棵二叉树。这篇文章之前在这里已经分享过了,值得好好学习。地址:https://blog.csdn.net/sir_TI/article/details/89277987114.Flatten Binary T...原创 2019-04-15 10:32:36 · 224 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第34题、第39题
34.Find First and Last Position of Element in Sorted Array题目链接题目解释:首先我们看题目的大体解释,给出一个已经排好序的list,这个list中是存在重复元素的,我给定一个target,需要在这个list,要求在在O(lgN)的时间内找到这个target的起始位置和终止位置,若找不到这样的元素,则返回[-1,-1]题目示例:...原创 2019-03-25 16:39:20 · 149 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第十九题、第二十二题
19.Remove Nth Node From End of List题目链接题目解释:从后面算起,删除第N个结点算法思想:思想比较简单,就是采用双指针法,刚开始的时候都是指向头结点,一个指针提前走n步,然后两个指针一起移动,等到先移动的那个指针移动到末尾的时候,那么另外一个指针所指向的结点就是倒数第n个结点。PS:题目比较简单,思路也是比较常规,掌握就能解决code:...原创 2019-03-18 16:24:54 · 150 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第十五题、第十七题
15.3Sum题目链接题目解释:给定义一个list,求其中三个数之和为0的序列题目分析:三个数字之和为0,那么我们可以采取这样的方式:先将给定的list排序,采用待定系数法,先确定一个数,然后从下一个数和最右边的数开始向中间遍历,找到三数之和为0的时候直接加入到最后的结果中,然后后面的时候在进行遍历即可。class Solution: def threeSum(self,...原创 2019-03-13 20:46:09 · 130 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第32题、第33题
32.Longest Valid Parentheses题目链接题目解释:给定一个只包含左括号和右括号的字符串,要求你求出最长的有效括号匹配对。例如:Input: ")()())"Output: 4那么这个output 4就是两个括号对(即4)所得到的。好的,题目就是这样的,那么主要是分析一下解题思路:题目思路:假设你是具备一定的专业的知识的,学过算法与数据结构,那...原创 2019-03-22 09:28:34 · 138 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第23题、第31题
23.Merge k Sorted Lists题目链接题目解释:简单的来说就是给出K个已经排序的序列,将他们合并成一个已经排序的序列。算法思想:本题尝试给出多个思路去解答这个问题,但是只会给出一个实现的代码:思路1(常规思想):首先将每个链表的头部设计一个指针,将指针指的值进行排序,依次进行这一样的操作,直到所有的指针都指向了各自链表的末尾。思路二(归并排序):对,这个就是那...原创 2019-03-20 15:53:05 · 130 阅读 · 0 评论 -
leetcode修炼------108、110题
第108题:"Given an array where elements are sorted in ascending order, convert it to a height balanced BST."题目大意:给你一个按照升序排序的数组,你将它转换为平衡二叉树。题目链接解题思路:首先明确平衡二叉树的定义:(1)它是一棵二叉排序树,即根节点的值大于左子树节点的值...原创 2019-03-09 16:29:22 · 231 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第五题、第十一题
5.Longest Palindromic Substring题目链接题目解释:具体的意义就是给定一个字符串,然后求这个字符串的最长回文子串题目分析:咋一看,之前也写过回文数的计算方式,咋还来个回文字符串呢,好吧,有就有,咱就来解决它...(抓耳挠腮看了半天的题目),貌似还是有点复杂呀,忽然来了个脑筋急转弯,想到了,具体的思路就是一句话就能解决的:既然你想要回文字符串,那么单个字符村肯...原创 2019-03-12 10:50:59 · 153 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第三题、第四题
3.Longest Substring Without Repeating Characters题目大意:给出一个字符串,需要你判断最长的无重复子串的长度题目链接题目分析:首先是明确子串的含义,以题目的内容举例:“pwwkew”对于这个单词,子串它是自带连续的定义的,即wwk 是这个字符串的一个子串,而wwe不是它的一个子串,具体的内容类推...那么拿到这个题目是怎么...原创 2019-03-11 22:48:02 · 278 阅读 · 5 评论 -
Top 100 Linked Question 修炼------第56题、第62题
56.Merge Intervals题目链接题目解释:给定间隔的集合,合并所有重叠的间隔。这个题目直接看题意个人感觉还是比较难以理解的,我们可以直接分析题目给出的例子,然后结合题意理解:Input: [[1,3],[2,6],[8,10],[15,18]]Output: [[1,6],[8,10],[15,18]]首先给出的输入是上面那一行,输出是下面这一行,那么是怎么得到的...原创 2019-03-30 11:28:27 · 201 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第75题、第76题
75.Sort Colors题目链接题目解释:给出n个物体,它们的颜色分别是红色、白色或者是蓝色,将它们按照颜色顺序进行排序,要求相邻的物体颜色是一样的,同时这个物体颜色的排列顺序为红色、白色、蓝色。要求:空间复杂度为O(1)题目给的示例如下:Input: [2,0,2,1,1,0]Output: [0,0,1,1,2,2]其中0是代表红色,1是代表白色,2是代表蓝色...原创 2019-04-04 16:29:01 · 146 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第46题、第48题
46.Permutations题目链接题目解释:给定一个list,list里面存在一些数据,求这些数据的排列共有多少种不同的形式。如:Input: [1,2,3]Output:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]题目思想:以上面的内容为例讲解算法思想,首先是固定1,然后对2,...原创 2019-03-27 09:22:02 · 214 阅读 · 0 评论 -
面经之树问题
今天 某为 给我来了一个电话面试,最后在写出算法的时候,来了一个这样的题:给定一个序列,判断其是否是二叉排序树的前序遍历结果作者回答:容我好好想想,em.........PS:又是二叉排序树,你确定知道二叉排序树的特性吗?算法思想:二叉排序树的左子树的结点的值均小于根节点的值,右子树结点的值均大于根节点的值,借助于这个想法,我们可以判断给出的序列是否是BST的先序遍历结果bool...原创 2019-04-13 10:34:42 · 234 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第121题、第124题
121.Best Time to Buy and Sell Stock题目链接PS:这个题目是股票系列问题的开篇,等做完Top 100后,开始总结全部股票系列的问题题目解释:假设给你一个数组,里面的第i个元素是代表第i天的股价,假设你最多进行一次交易(如先买一只股票,后面在卖出这支股票),要求分析出你能够获得的最大利润。(要求你必须先买入后才能进行售卖一只股票),举例如下:Exa...原创 2019-04-17 11:19:33 · 178 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第98题、第102题
98.Validate Binary Search Tree题目链接题目解释:其实从题目就能直接的看出来是在判断给定的二叉树是不是二叉排序树,而在前篇我们也介绍了二叉排序树的特征(不熟悉二叉排序树的请点击这里),这里直接给出题目的示例:ExampleInput: 2 / \ 1 3Output: true很明显,这个二叉树的根节点的value比左子树...原创 2019-04-13 09:36:41 · 254 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第84题、第85题
84.Largest Rectangle in Histogram题目链接题目解释:给出n个非负数代表直方图的高 ,每个直方图的宽度为1,找到直方图里面最大的矩形。当然,只看这一句话你可能还是不知所云,但是结合题目的示例来说的话,就比较的好懂了,如给出直方图的高度为height=[2,1,5,6,2,3],按照题意画出直方图:然后,我们根据题意,将要画求得的最大的矩形面积...原创 2019-04-09 19:29:59 · 309 阅读 · 0 评论 -
Top 100 Linked Question 修炼------第72题
前记刚看到这个题目的时候,自己确是惊呆了,因为自己是打算把这个内容当做是一个具体的算法实例来学习讲解的,因为edit distance在计算词语的相似度时有着重要的意义,既然出现了这个题目,那就索性来个二合一吧,记录一下自己学习这个算法,并且实现的过程。72.Edit Distance题目链接题目解释:给出word1和word2,当我们需要把word1转变为word2的时候,需要...原创 2019-04-03 16:36:15 · 235 阅读 · 0 评论