LeetCode刷题
我想改个名字
这个作者很懒,什么都没留下…
展开
-
反转链表
class LNode: def __init__(self, val): self.val = val self.next = Nonedef reverseList(Phead): pre, cur = None, Phead while cur: temp = cur.next cur.next = pre pre = cur cur = temp return pre原创 2021-04-01 23:33:10 · 137 阅读 · 0 评论 -
链表合并
"""递归写法"""class Solution: # 返回合并后列表 def Merge(self, pHead1, pHead2): # write code here if pHead1 == None: return pHead2 if pHead2 == None: return pHead1 pre = None if pHead1.val <原创 2021-04-01 23:25:48 · 138 阅读 · 0 评论 -
快速排序
"""快速排序 平均O(nlog2n) 最好O(nlog2n) 最坏O(n^2) 空间复杂度O(nlog2n) 不稳定"""def QuickSort(lst): def partition(arr, left, right): key=left #默认第一个数为基准元素 while left<right: while left<right and arr[right] >= arr[key]:原创 2021-04-01 23:18:46 · 121 阅读 · 0 评论 -
冒泡排序
"""冒泡排序 平均O(n^2) 最坏O(n^2) 最好O(n) (表示遍历一次发现没有任何可交换的元素,排序结束) 空间O(1) 稳定"""def BubbleSort(lst): n=len(lst) if n<=1: return lst for i in range(0,n): for j in range(0,n-i-1): if lst[j]>lst[j+1]:原创 2021-04-01 23:17:02 · 101 阅读 · 0 评论 -
判断链表中是否存在环
class LNode: def __init__(self, val): self.val = val self.next = Nonedef exitLoop(LList): p1 = p2 = LList while p2 and p2.next: #当链表为空或者只有一个结点时,返回False,不存在环 p1 = p1.next p2 = p2.next.next if p1 == p2:原创 2021-04-01 23:05:24 · 116 阅读 · 0 评论 -
二分查找
# 二分查找:返回 x 在 arr 中的索引,如果不存在返回 -1def binarySearch(arr, left, right, x): if right >= left: mid = int(left + (right-left)/2) if arr[mid] == x: return mid # 如果元素小于中间位置的元素,只需要再比较左边的元素 elif arr[mid] > x:原创 2021-04-01 22:50:40 · 100 阅读 · 0 评论 -
二叉树遍历
'''递归实现二叉树遍历:前序,中序,后序'''class TreeNode(object): def __init__(self,x): self.val = x self.left = None self.right = Nonedef preOrderRecusive(root): if root == None: return None print (root.val,end=" ") preO原创 2021-04-01 22:40:27 · 98 阅读 · 0 评论 -
leetcode 88. 合并两个有序数组
代码:class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: for i in range(0,n): nums1[i+m] = nums2[i] nums1.sort()原创 2021-03-31 21:52:25 · 85 阅读 · 0 评论