leetCode
LiuY_ang
这个作者很懒,什么都没留下…
展开
-
Reverse Bits 及format()总结
题目详情:https://leetcode.com/problems/reverse-bits/description/自己写的代码:class Solution: # @param n, an integer # @return an integer def reverseBits(self, n): ns=bin(n)[2:] #转换为二进制,转换后二进制原创 2017-08-04 23:55:06 · 1406 阅读 · 0 评论 -
Longest Substring without Repeating Characters
题目详情:https://leetcode.com/problems/longest-substring-without-repeating-characters/description/自己写的代码,主要思路就是:存储字符串中每个元素的位置;如果当前字符c在前边出现过,设为start,那么取的该位置,并更新c的位置,设为nowPos。这里有个变量m,m存储”历史上”start的最大值,程序需要根据原创 2017-08-22 22:25:54 · 320 阅读 · 0 评论 -
Longest Palindromic Substring
题目详情:https://leetcode.com/problems/longest-palindromic-substring/description/自己写的代码,思路: 1、统计s中元素出现的位置 2、然后遍历s中的每一个元素,设该元素的位置为nowPos 3、接着取下一个相同的元素的位置,设为nextPos,然后判s[nowPos,nextPos]是否为回文串,循环步骤3 4、循环步原创 2017-08-22 23:53:24 · 285 阅读 · 0 评论 -
Minimum Absolute Difference in BST
题目详情:https://leetcode.com/problems/minimum-absolute-difference-in-bst/description/# -*- coding:utf-8 -*-# Definition for a binary tree node.import sysclass TreeNode(object): def __init__(self, x原创 2017-08-16 00:21:01 · 322 阅读 · 0 评论 -
Convert BST to Greater Tree
题目详情:https://leetcode.com/problems/convert-bst-to-greater-tree/description/# -*- coding:utf-8 -*-# Definition for a binary tree node.class TreeNode(object): def __init__(self, x): self.va原创 2017-08-16 01:00:29 · 316 阅读 · 0 评论 -
Generate Parentheses
题目详情:https://leetcode.com/problems/generate-parentheses/description/想到用递归,但是自己没有写出来,后看了答案。递归看起来简单,但是感觉”韵味无穷”,我对递归一无所知,以后得加强训练啊。# -*- coding:utf-8 -*-class Solution(object): def generateParenthesis翻译 2017-08-27 16:03:58 · 330 阅读 · 0 评论 -
Combination Sum
题目详情:https://leetcode.com/problems/combination-sum/description/又是递归,又没有想出来[衰]。感觉自己对程序设计的理解又深了点。# -*- coding:utf-8 -*-class Solution(object): def combinationSum(self, candidates, target): "原创 2017-08-27 16:23:30 · 284 阅读 · 0 评论 -
Container With Most Water
题目详情:https://leetcode.com/problems/container-with-most-water/solution/#approach-2-two-pointer-approach-accepted思路:初始化i=0,j=len(height)-1 ,保持较大的高度位置不变,然后将较小的位置改变,以求的最大的面积。若将较大的高度的位置改变,那么最大的面积会受限于较小于的高度,原创 2017-08-27 16:44:13 · 537 阅读 · 2 评论 -
Jump Game
题目详情:https://leetcode.com/problems/jump-game/description/什么情况下才能到达最后一个位置呢?如果没有0的话,那么可能能够到达最后的,比如 一步一步的走。但是如果有0的话,就需要考虑如何跨过该0元素,所以题目就变成了检查数组 中的所有的0元素是否都能跨过去# -*- coding:utf-8 -*-class原创 2017-09-04 22:51:45 · 328 阅读 · 0 评论 -
Path Sum III
题目详情:https://leetcode.com/problems/path-sum-iii/description/解法一: 暴力破解,写法简单class Solution(object): def pathSum(self, root, sum): """ :type root: TreeNode :type sum: int原创 2017-08-15 20:46:21 · 313 阅读 · 0 评论 -
Find Mode in Binary Search Tree
题目详情:https://leetcode.com/problems/find-mode-in-binary-search-tree/description/自己写的代码:# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x原创 2017-08-15 00:27:21 · 451 阅读 · 0 评论 -
Maximum Depth of Binary Tree
题目详情:https://leetcode.com/problems/maximum-depth-of-binary-tree/tabs/description/class Solution(object): def maxDepth(self, root): """ :type root: TreeNode :rtype: int原创 2017-07-28 10:43:04 · 321 阅读 · 0 评论 -
Subtree of Another Tree
题目详情:https://leetcode.com/problems/subtree-of-another-tree/description/暴力破解,依次检查以s中的各个节点为根节点的树是否和t相等class Solution(object): def isSubtree(self, s, t): """ :type s: TreeNode原创 2017-08-19 21:29:01 · 282 阅读 · 0 评论 -
Merge Two Binary Trees
题目详情:https://leetcode.com/problems/merge-two-binary-trees/description/class Solution(object): def mergeTrees(self, t1, t2): """ :type t1: TreeNode :type t2: TreeNode原创 2017-08-19 21:44:24 · 275 阅读 · 0 评论 -
Binary Tree Level Order Traversal
题目详情:https://leetcode.com/problems/binary-tree-level-order-traversal/tabs/description/#-*- coding: UTF-8 -*-# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):原创 2017-07-28 13:19:49 · 256 阅读 · 0 评论 -
Minimum Depth of Binart Tree
题目详情:https://leetcode.com/problems/minimum-depth-of-binary-tree/tabs/description/ 该题与求树的深度不太一样,原因是求从根节点到叶子节点的最短路径。 思路:每次递归,当前节点到根节点的深度恰好递归的深度,所以设置变量now用以记录递归的深度(也就是节点的深度),每次都判断该节点是否为叶子节点,若为叶子节点在判断当前叶原创 2017-07-28 17:04:33 · 317 阅读 · 0 评论 -
Binary Tree Level Order Traversal II
题目详情:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/tabs/description提交的时候,出现了Line 51: AttributeError: ‘Solution’ object has no attribute ‘levelOrderBottom’。不知道是为什么。后来一点点的复制过去才解决的。还删原创 2017-07-28 18:13:08 · 315 阅读 · 0 评论 -
Convert Sorted Array to Binary Search Tree
题目详情:https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/tabs/descriptionclass Solution(object): def sortedArrayToBST(self, nums): """ :type nums: List[int]原创 2017-07-28 21:39:42 · 280 阅读 · 0 评论 -
Lowest Common Ancestor of a Binary Search Tree
题目详情:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.原创 2017-08-06 22:36:57 · 280 阅读 · 0 评论 -
Spiral Matrix
题目详情:https://leetcode.com/problems/spiral-matrix-ii/description/这道题以前遇到过,记得好想是用双循环做的,但是现在忘记了,又做了一遍。一开始的思路是把矩阵当作方方正正的矩阵了,没有考虑到矩阵可能是”扁”的,导致结果出错。然后想到一行,一列的访问,但是此时还有个问题是有个问题可能访问了不止一遍。所以在访问完每行每列之后,判断是否访问完成。原创 2017-09-05 18:55:56 · 323 阅读 · 0 评论 -
Combination Sum II
题目详情:https://leetcode.com/submissions/detail/115884560/模仿着Combination Sum的解题方法,自己写出来的# -*- coding:utf-8 -*-class Solution(object): def combinationSum2(self, candidates, target): """原创 2017-08-28 12:49:07 · 319 阅读 · 0 评论 -
Permutations
题目详情:https://leetcode.com/submissions/detail/115893726/# -*- coding:utf-8 -*-class Solution(object): def permute(self, nums): """ :type nums: List[int] :rtype: List[List[in原创 2017-08-28 13:51:37 · 333 阅读 · 0 评论 -
669. Trim a Binary Search Tree
题目链接:https://leetcode.com/problems/trim-a-binary-search-tree/description/ 题目要求把不符合要求的节点”剪掉”即可。这是一颗二叉搜索树,需要利用二叉搜索树的性质。实现起来有点麻烦。过程也不太好叙述啊[衰] 1、当前根节点满足[L,R] 1.1、则检查当前根节点左子树的值 1.2、检查当前根节点的右子树的值原创 2017-11-17 10:42:13 · 312 阅读 · 0 评论 -
Sort List(二路归并排序)
题目链接:https://leetcode.com/problems/sort-list/description/ 题目要求:对链表进行排序,时间复杂度O(n),常数的空间复杂度 两种解法,本质上都是二路归并排序,一个是递归写法,另一个是非递归写法。递归写法简单,工整;非递归写法不太容易理解,也不简洁。 二路归并排序的过程如下所示: 待排序序列为:49,38,65,97,76,13,27。共原创 2017-11-30 17:49:45 · 486 阅读 · 0 评论 -
671. Second Minimum Node In a Binary Tree
题目详情:https://leetcode.com/problems/second-minimum-node-in-a-binary-tree/description/ 暴力破解,管它什么特征呢# -*- coding:utf-8 -*-class Solution(object): def inOrder(self,root):#中序遍历保存访问的序列 if root:原创 2017-11-16 20:08:42 · 240 阅读 · 0 评论 -
109. Convert Sorted List to Binary Search Tree
题目链接:https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/description/ 一开始没有注意到连接中的元素已经有序了这个条件,按照链表中元素的顺序,一个个的往平衡二叉树中插入节点,结果导致运行时间超时。下面的代码是就是这种思路。class Solution(object): def get原创 2017-12-03 16:23:20 · 314 阅读 · 0 评论 -
Valid Palindrome II
题目链接:https://leetcode.com/problems/valid-palindrome-ii/description/ 做这道题真是“路途艰辛”啊。一开始我就想到会不会有什么套路,想了半天没有想出来。后来干脆先暴力,果然有时间限制。然后自然而然的想到要降低时间复杂度,只检查字符不同的位置就行了,结果还是超时[衰]。再后来就开始认认真真的分析这道题的“套路”了。 因原创 2017-11-25 14:42:37 · 409 阅读 · 0 评论 -
662. Maximum Width of Binary Tree
题目链接:https://leetcode.com/problems/maximum-width-of-binary-tree/description/ 求树的宽度,就是求树的每个层次的宽度,并返回层次最宽的那个宽度。例如树[1,3,2,5,3,null,9] 树的宽度为4。 代码如下:# Definition for a binary tree node.# class TreeNode(o原创 2017-12-24 21:33:52 · 345 阅读 · 0 评论 -
684. Redundant Connection
题目链接:https://leetcode.com/problems/redundant-connection/description/ 在一个有N个节点的无向图中,一共有N条边,要求从图中的边中删除一条边,删除这条边后的图是一颗树。在一棵树有N个节点,有N-1条边。如果有N条边,那么一定存在环。只需要把环中的一条边删除就可以。那么问题来了,如何判断图中有没有环呢?我用的是并查集。其思想为,如果一原创 2017-12-24 22:12:14 · 352 阅读 · 0 评论 -
685. Redundant Connection II
题目链接:https://leetcode.com/problems/redundant-connection-ii/description/这次变成了有向图。给定一颗有N个节点的树,树中有N条边,要求删除有向图中的一条边,使删除边后的图是一棵树。 考虑一棵树中,多了一条边后,会有两种情况: 1、图中有环 2、图中某个节点有两个父节点。 其实还有一种情况是图中既有环,又有某个节点有两个父节点原创 2017-12-24 22:35:56 · 379 阅读 · 0 评论 -
Maximum Subarray
解法一(动态规划)、 设置两个变量分别是location,largeSum,其初始值都为数组的首元素。location为局部的最优解,largeSum为全局的最优解。 1、当整数集合中只有一个元素的时候,那么子串就是该元素 2、当有两个元素的时候,例如(n1,n2): 若最大子串为(n2)或者为(n1,n2),则最优子串和为location=largeSum=n2或者location=lar原创 2017-07-18 18:20:04 · 418 阅读 · 0 评论 -
Decode Ways
题目链接:https://leetcode.com/problems/decode-ways/description/ 一开始就想到了和前边的数相关,但是没有细想,导致出错。后来在纸上特意把前边的数给圈出来了,灵感突现。 举个例子:222的解码方式为3种,22的解码方式为2种,2的解码方式为1种。即(222)解码方式=(22 2)方式+(2 22)方式1272的解码方式为2种,1原创 2017-09-29 09:53:13 · 277 阅读 · 0 评论 -
Merge Intervals
题目详情:https://leetcode.com/problems/merge-intervals/description/思路:设置两个变量earlyStartTime,用于存储开始时间;latestEndTime用于存储最晚的结束时间。这两个变量的起始值为第一个Interval的开始时间和结束时间。 1、首先对intervals进行排序 2、从第二个元素开始,依次用latestEndTim原创 2017-09-06 11:07:44 · 288 阅读 · 0 评论 -
Rotate List
题目详情:https://leetcode.com/problems/rotate-list/description/ 思路: 1、首先通过遍历链表,得到链表的长度 2、k%length取余,因为k有可能大于length 3、设置一个快指针,让其从第一个节点开始先走k步,然后在设置一个慢指针p,让他们同时往前走,fast到达最后一个节点的时候结束。此时fast在最后一个节点位置处,p在第le原创 2017-09-06 19:18:20 · 244 阅读 · 0 评论 -
Unique Paths
题目详情:https://leetcode.com/problems/unique-paths/description/一开始又想到了用递归去模拟过程,但是运行时间超时,突然感觉自己用不好递归,不清楚何时该去用递归,何时不该用递归。 递归解法如下# -*- coding:utf-8 -*-class Solution(object): def uniquePaths(self, m, n原创 2017-09-06 21:06:04 · 248 阅读 · 0 评论 -
Unique Paths
题目详情:https://leetcode.com/problems/unique-paths-ii/description/自己写的代码,感觉不够简洁# -*- coding:utf-8 -*-class Solution(object): def uniquePathsWithObstacles(self, obstacleGrid): """ :typ原创 2017-09-08 08:44:52 · 324 阅读 · 0 评论 -
Permutations II
题目详情:https://leetcode.com/problems/permutations-ii/description/我的思路是在往集合中添加排列的时候,进行去重操作,即if path not in self.ans 但是导致超时,然后想其它的解决办法已知也没有想到[衰],后来看了答案。 答案的思路: 1、首先对nums中的元素个数进行统计。 2、对nums中的统计结果进行递归,这递归原创 2017-08-30 22:53:11 · 248 阅读 · 0 评论 -
Search a 2D Matirx II
题目详情:https://leetcode.com/problems/search-a-2d-matrix-ii/description/思路: 1、检查第一列的行首元素,从最后一行开始,如果行首元素小于等于target的行停止,假设该位置为row。target不可能在大于row的行中,因为大于row行中的元素都比target大。 2、检查第一行的列首元素,从最后一列开始,如果列首元素小于等于t原创 2017-09-08 16:59:55 · 391 阅读 · 0 评论 -
Subsets II
题目详情:https://leetcode.com/problems/subsets-ii/description/以前遇到过类似的题目(https://leetcode.com/problems/permutations-ii/description/),即有重复元素,但是那时候没有写出来,今天模仿着那道题的思路写出来,虽然花的时间有点长。 1、对nums中的元素进行统计 2、对nums中的重原创 2017-09-10 15:02:24 · 381 阅读 · 0 评论 -
Rotate Image
题目详情:https://leetcode.com/problems/rotate-image/description/本题思路:把第一行元素赋值给倒数第一列元素,把第二行元素一次赋值给倒数第二列的各个位置,依次类推。 但是这样就会一个问题:从第二行开始最后的几个元素会被覆盖掉,比如: 矩阵[ [ 5, 1, 9,11],[ 2, 4, 8,10],[13, 3, 6, 7],[15,14,12原创 2017-09-02 22:19:22 · 315 阅读 · 0 评论