力扣
杨提督门下
这个作者很懒,什么都没留下…
展开
-
剑指Offer习题重建二叉树
```pythonclass Solution: def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode: def recur(root,left,right): if left>right: return #递归终止 node=TreeNode(preorder[root]) #根节点为前序遍历.原创 2021-02-01 19:58:54 · 103 阅读 · 0 评论 -
Leetcode习题反转字符串
python反转字符串class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ l=0 r=len(s)-1 while l<r: s[l],s[r]=s[r],s[l]原创 2021-01-29 10:46:40 · 112 阅读 · 0 评论 -
Leetcode习题删除链表中的节点,除自身以外的乘积等
删除链表中的节点class Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, modify node in-place instead. """ node.val=node.next.val node.next=node.next.next除自身以外数原创 2021-01-28 21:49:25 · 76 阅读 · 0 评论 -
Leetcode习题2的幂,二叉树的最近公共祖先
2的幂class Solution: def isPowerOfTwo(self, n: int) -> bool: return n>0 and n&(n-1)==0二叉搜索树的最近公共祖先class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': ancestor=原创 2021-01-27 22:04:11 · 96 阅读 · 0 评论 -
Leetcode习题数组中的第K个最大值
数组中的第K个最大值 class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: n=len(nums) target=n-k left=0 right=n-1 while True: index=self.partition(nums,left,right) if inde原创 2021-01-26 22:39:22 · 150 阅读 · 0 评论 -
Leetcode习题相交链表,多数元素,反转链表
相交链表class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: h1,h2=headA,headB while h1!=h2: h1=h1.next if h1 else headB h2=h2.next if h2 else headA return h1多数元素原创 2021-01-25 19:39:00 · 71 阅读 · 1 评论 -
Leetcode习题LRU缓存机制,排序链表,最小栈
LRU缓存机制class ListNode: def __init__(self,key=None,value=None): self.key=key self.value=value self.prev=None self.next=Noneclass LRUCache: def __init__(self, capacity: int): self.capacity=capacity原创 2021-01-23 23:44:06 · 140 阅读 · 0 评论 -
Leetcode习题只出现一次的数字,环形链表I,II
只出现一次的数字class Solution: def singleNumber(self, nums: List[int]) -> int: return reduce(lambda x,y: x^y, nums) #XOR环形链表 class Solution: def hasCycle(self, head: ListNode) -> bool: if not head or not head.next: retu原创 2021-01-22 22:44:49 · 121 阅读 · 1 评论 -
Leetcode习题买卖股票最佳时期,二叉树最大路径和
买卖股票的最佳时期class Solution: def maxProfit(self, prices: List[int]) -> int: inf=int(1e9) minprice=inf maxProfit=0 for prices in prices: maxProfit=max(prices-minprice,maxProfit) #动态规划,遍历边更新边求差值 mi原创 2021-01-21 11:19:01 · 130 阅读 · 0 评论 -
Leetcode习题合并两个有序数组,格雷编码等
合并两个有序数组class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: """ Do not return anything, modify nums1 in-place instead. """ p1,p2=m-1,n-1 #倒指针 p=m+n-1 while p1原创 2021-01-20 19:42:00 · 102 阅读 · 0 评论 -
Leetcode习题不同路径,爬楼梯,子集
不同路径class Solution: def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int: f=[[1]*n]+[[1]+[0]*(n-1) for _ in range(m-1)] #设置为1的边界和路径 print(f) for i in range(1,m): for j in range(1,n):原创 2021-01-19 22:48:21 · 81 阅读 · 0 评论 -
Leetcode习题螺旋矩阵,旋转链表
螺旋矩阵class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: if not matrix: return [] m=len(matrix) #行 n=len(matrix[0]) #列 layer_num=(min(m,n)+1)//2 #有多少层 res_list=[] #保持结果 for l原创 2021-01-18 23:59:59 · 154 阅读 · 0 评论 -
Leetcode习题字符串相乘,全排列,最大自序和
字符串相乘class Solution: def multiply(self, num1: str, num2: str) -> str: if num1=="0" or num2=="0": return "0" m,n=len(num1),len(num2) ansArr=[0]*(m+n) for i in range(m-1,-1,-1): #从m-1开始,逐一递减,递减至-1的前面那个元素的值原创 2021-01-17 22:05:00 · 113 阅读 · 0 评论 -
Leetcode习题合并K个排序链表,旋转排序数列等
合并K个排序链表class Solution: def mergeKLists(self, lists: List[ListNode]) -> ListNode: n=len(lists) if not lists: return else: return self.merge(lists,0,n-1) def merge(self, lists, L, R): if原创 2021-01-16 21:55:15 · 64 阅读 · 0 评论 -
Leetcode习题最接近的三数之和,有效的括号,合并两个有序链表
最接近的三数之和class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: nums.sort() n=len(nums) bestNum=nums[0]+nums[1]+nums[2]for i in range(n-2): L=i+1 R=n-1 while L<R:原创 2021-01-15 23:25:52 · 79 阅读 · 0 评论 -
Leetocde习题三数之和,盛最多水容器等
三数之和:双指针+排序+遍历class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: res=[] nums.sort() for i in range(len(nums)-2): if(nums[i]>0): return res #空值 if(i>0 and n原创 2021-01-13 21:46:55 · 85 阅读 · 0 评论 -
Leetcode习题整数反转,字符串转整数等
整数反转class Solution: def reverse(self, x: int) -> int: ans=0 INTMAX10 = 214748364 INTMIN10 = -214748364 while x: pop=x%10 if x>0 else x%-10 x=x//10 if x>0 else int(x/10) if ans>INTMAX10 or (ans=原创 2021-01-12 22:25:20 · 145 阅读 · 0 评论 -
Leetcode习题两数相加,最长回文子串等
两数相加方法一:class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n = len(nums) for i in range(n): for j in range(i + 1, n): if nums[i] + nums[j] == target: return原创 2021-01-11 18:09:31 · 84 阅读 · 0 评论 -
力扣 两数之和python
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807class Solution: def addTwoNumbe原创 2020-12-14 18:03:23 · 357 阅读 · 0 评论