![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
伸腿瞪眼丸
这个作者很懒,什么都没留下…
展开
-
leetcode——897.递增顺序查找树
题目描述:思路:利用列表先输出中序排列,再按照中序排列的方式重新构造一个树,重新构造的树只有右节点。# 定义树节点class TreeNode: def __inif__(self,x): self.val = x self.left = None self.right = Noneclass Solution: def increasingBST(self,root): # 中序遍历 def inorder(root): if not root: retur原创 2020-09-28 16:23:49 · 168 阅读 · 0 评论 -
leetcode589——N叉树的前序遍历
题目描述:给定一个 N 叉树,返回其节点值的前序遍历。思路:采用递归的思想,给1个节点,先把这个节点加入到列表,判断该节点是否有子节点,若有,把该节点的子节点加入列表后再加入其他节点。def preorder(self,root): res = [] def dfs(node): if node: res.append(node.val) for i in node.children: dfs(i) dfs(root) return res...原创 2020-09-25 10:56:50 · 128 阅读 · 0 评论 -
leetcode110——平衡二叉树
题目描述:给定一颗二叉树,判断是否是高度平衡的二叉树。高度平衡的二叉树定义:左右子树的高度差不超过1.思路:这个问题可采用递归的思想,首先计算每个节点的左右子树的高度差是否为1,再判断左右子树是否为平衡二叉树,若是,则为平衡二叉树,否则不是。伪代码:if abs(高度(node.left)-高度(node.right))<=1 and node.left is balanced and node.right is balanced: print('是平衡二叉树')else: print(原创 2020-09-25 10:33:00 · 108 阅读 · 0 评论 -
leetcode每日一题——数组中数字出现的次数
题目描述:一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例:输入: nums = [4,1,4,6]输出: [1,6]或[6,1]解题过程:(1)首先考虑特殊情况,nums中只有1个数字出现1次其余均出现两次时,使用全员异或即可。原因在于相同的数字异或的结果为0.def singl...原创 2020-04-28 11:45:49 · 216 阅读 · 0 评论 -
算法——广度优先搜索(BFS)
广度优先搜索主要解决两类问题:(1)从A节点出发,有到B节点的路径么?(2)从A节点出发,到B节点的最短路径是什么?算法复杂度为O(V+E),其中V为顶点,E为边数。例:假设你要在朋友中找一个芒果销售商,如果朋友中没有,则找朋友的朋友,即人际关系网。实现的是第一类问题,在你的人际关系王忠,能找到芒果销售商么?from collections import deque ...原创 2020-04-21 12:44:10 · 192 阅读 · 0 评论 -
算法——二分查找、选择排序、快速排序
二分查找二分查找的复杂度为O(nlogn),使用二分查找的前提是该序列为一个有序数列。def binary_search(arr, item): low = 0 high = len(arr) - 1 while low <= high: mid = (low + high) // 2 guess = list[mid] if guess == item: ret...原创 2020-04-20 23:17:31 · 125 阅读 · 0 评论 -
每日刷题——leetcode912.排序数组
题目描述:给定一个数组nums,将数组升序排序。示例:输入:[5,2,3,1]输出:[1,2,3,5]解法一:插入排序思想:从数组的第二个数开始与前一个数进行比较,如果后面的数比前面的数小,则进行交换。算法复杂度为O(n2n^2n2)题解:def sortArray(self, nums): for i in range(1,len(nums)): for j in rang...原创 2020-03-31 09:42:47 · 229 阅读 · 0 评论