自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浩浩花花世界的博客

他很笨,但他很勤奋

  • 博客(81)
  • 资源 (5)
  • 收藏
  • 关注

原创 153. 寻找旋转排序数组中的最小值

文章目录题目描述解题思路代码实现153. 寻找旋转排序数组中的最小值题目描述解题思路还是二分查找,在常规二分查找中,序列有序,在此题中分段有序。如果以中点为分割点,一定有一半是有序的,据此可以判断最小值点的区间。代码实现class Solution: def findMin(self, nums: List[int]) -> int: low, high = 0, len(nums) - 1 while low < high:

2021-09-26 21:01:59 204

原创 34. 在排序数组中查找元素的第一个和最后一个位置

文章目录题目描述解题思路代码实现34. 在排序数组中查找元素的第一个和最后一个位置题目描述解题思路本质是查找有序数组中目标值的左右边界。左右边界的查找参考东哥详解。代码实现class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: res = [-1, -1] if not nums: return res

2021-09-14 21:13:06 191

原创 69. x 的平方根

文章目录题目描述解题思路代码实现69. x 的平方根题目描述解题思路二分法查找代码实现class Solution: def mySqrt(self, x: int) -> int: low, high = 0, x while low <= high: mid = low + (high - low) // 2 mid2 = mid ** 2 # 向下取整,第一个小于

2021-09-14 21:01:31 186

原创 524. 通过删除字母匹配到字典里最长单词

文章目录题目描述解题思路代码实现524. 通过删除字母匹配到字典里最长单词题目描述解题思路双指针一次判断数组中的单词是否匹配,满足时只有长度更长或通长度字典序更小才更新答案。代码实现class Solution: def findLongestWord(self, s: str, dictionary: List[str]) -> str: # dictionary = sorted(dictionary) res = ""

2021-09-13 21:28:10 178

原创 125. 验证回文串

文章目录题目描述解题思路代码实现125. 验证回文串题目描述解题思路双指针,初始分别指向首和尾,当左右指针指向字符相同时,更新左右指针;当不相同时,不可能是回文串。代码实现class Solution: def isPalindrome(self, s: str) -> bool: ss = "".join(ch.lower() for ch in s if ch.isalnum()) start, end = 0, len(ss) - 1

2021-09-13 20:41:28 157

原创 680. 验证回文字符串 Ⅱ

文章目录题目描述解题思路代码实现680. 验证回文字符串 Ⅱ题目描述解题思路双指针,初始分别指向首和尾,当左右指针指向字符相同时,更新左右指针;当不相同时,删除左指针或右指针,删除后两个有一个是回文串即可。代码实现class Solution: def validPalindrome(self, s: str) -> bool: def isPalindrome(s: str): start, end = 0, len(s) - 1

2021-09-13 20:32:19 152

原创 633. 平方数之和

文章目录题目描述解题思路代码实现633. 平方数之和题目描述解题思路双指针。这里需要注意结束位置,因为math.sqrt© ** 2 >= c,所以结束位置可以提前,不需要从c开始代码实现class Solution: def judgeSquareSum(self, c: int) -> bool: start = 0 # end = int(math.sqrt(c)) end = math.ceil(math.sqrt(c

2021-09-09 21:09:13 148

原创 142. 环形链表 II

文章目录题目描述代码实现参考文献142. 环形链表 II题目描述代码实现# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def detectCycle(self, head: ListNode) -> ListNode:

2021-09-09 20:12:17 139

原创 88. 合并两个有序数组

文章目录题目描述解题思路代码实现88. 合并两个有序数组题目描述解题思路从末尾开始比较代码实现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. 从num1末尾开始比较

2021-09-08 22:15:26 167

原创 167. 两数之和 II - 输入有序数组

文章目录题目描述解题思路代码实现167. 两数之和 II - 输入有序数组题目描述解题思路双指针,两边移动。代码实现class Solution: def twoSum(self, numbers: List[int], target: int) -> List[int]: head, tail = 0, len(numbers) - 1 while head < tail: s = numbers[head] + n

2021-09-08 21:52:42 121

原创 122. 买卖股票的最佳时机 II

文章目录题目描述代码实现122. 买卖股票的最佳时机 II题目描述代码实现class Solution: def maxProfit(self, prices: List[int]) -> int: """ 只要股票当天较前一天在上涨,就可以做交易以获得最大利润 """ profit = 0 for i in range(1, len(prices)): if prices[i] > p

2021-09-08 07:17:28 211

原创 763. 划分字母区间

文章目录题目描述代码实现参考文献763. 划分字母区间题目描述代码实现class Solution: def partitionLabels(self, s: str) -> List[int]: # 获取每个字母最后结束的位置 last = [0] * 26 for i, ch in enumerate(s): last[ord(ch) - ord("a")] = i prt = []

2021-09-07 21:11:56 163

原创 452. 用最少数量的箭引爆气球

文章目录题目描述代码实现参考文献452. 用最少数量的箭引爆气球题目描述代码实现class Solution: def findMinArrowShots(self, points: List[List[int]]) -> int: points.sort(key=lambda x: x[0]) res = 1 for i in range(1, len(points)): if points[i][0] &gt

2021-09-07 20:39:00 124

原创 605. 种花问题

文章目录题目描述解题思路代码实现参考文献605. 种花问题题目描述解题思路首尾添加占位符,不用再分情况区分。满足条件即可种花。代码实现class Solution: def canPlaceFlowers(self, flowerbed: List[int], n: int) -> bool: cnt = 0 arr = [0] + flowerbed + [0] for i in range(1, len(arr) -1):

2021-09-07 07:57:46 182

原创 435. 无重叠区间

文章目录题目描述解题思路代码实现参考文献435. 无重叠区间题目描述解题思路求最少的移除区间个数,等价于尽量多保留不重叠的区间。在选择要保留区间时,区间的结尾十分重要:选择的区间结尾越小,余留给其它区间的空间就越大,就越能保留更多的区间。因此,采取的贪心策略为:优先保留结尾小且不相交的区间。代码实现class Solution: def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:

2021-09-06 20:48:07 192

原创 135. 分发糖果

文章目录题目描述解题思路代码实现参考文献135. 分发糖果题目描述解题思路贪心策略:两遍遍历。每次遍历,只考虑并更新相邻一侧的大小关系代码实现class Solution: def candy(self, ratings: List[int]) -> int: size = len(ratings) can = [1] * size # 从左往右遍历,如果右边孩子的评分比左边的高,则右边孩子的糖果数更新为左边孩子的糖果数加 1

2021-09-06 07:44:07 143

原创 455. 分发饼干

文章目录题目描述解题思路代码实现参考文献455. 分发饼干题目描述解题思路贪心策略:给剩余孩子里最小饥饿度的孩子分配最小的能饱腹的饼干。实现时因为需要获得大小关系,所以需要把孩子和饼干分别排序。这样就可以从饥饿度最小的孩子和饼干数最少出发,计算有多少个对可以满足条件。代码实现class Solution: def findContentChildren(self, g: List[int], s: List[int]) -> int: g = sorted(g

2021-09-03 07:32:46 244

原创 919. 完全二叉树插入器

文章目录题目描述解题思路代码实现参考文献919. 完全二叉树插入器题目描述解题思路1、思考二叉树节点在数组中的位置关系代码实现class CBTInserter: def __init__(self, root: TreeNode): self.node_arr = [None] def helper(root): if not root: return self.no

2021-08-11 07:58:32 189

原创 1110. 删点成林

文章目录题目描述解题思路代码实现参考文献1110. 删点成林题目描述解题思路1、利用树中删除节点思想2、删除钱记录左右子树代码实现class Solution: def delNodes(self, root: TreeNode, to_delete: List[int]) -> List[TreeNode]: self.forest = [] def dfs_delete(root: TreeNode, to_delete: List[int]

2021-07-27 21:00:39 195

原创 剑指 Offer 36. 二叉搜索树与双向链表

文章目录题目描述解题思路代码实现参考文献剑指 Offer 36. 二叉搜索树与双向链表题目描述解题思路1、利用二叉搜索树BST性质中序遍历有序;2、因为要建立双向链表,所以需要记录前驱节点代码实现class Solution: def treeToDoublyList(self, root: 'Node') -> 'Node': if not root: return self.pre = None

2021-07-27 07:51:55 175

原创 1382. 将二叉搜索树变平衡

文章目录题目描述解题思路代码实现参考文献1382. 将二叉搜索树变平衡题目描述解题思路本题利用二叉搜索树BST性质中序遍历有序,然后二分法建一颗平衡二叉树代码实现class Solution: def balanceBST(self, root: TreeNode) -> TreeNode: self.arr = [] def inorder(root: TreeNode) -> None: if not root:

2021-07-27 07:24:44 162

原创 341. 扁平化嵌套列表迭代器

文章目录题目描述解题思路代码实现参考文献341. 扁平化嵌套列表迭代器题目描述解题思路方法一:遍历所有元素,存在列表中。这种方法不是最优解。代码实现# """# This is the interface that allows for creating nested lists.# You should not implement it, or speculate about its implementation# """#class NestedInteger:# d

2021-07-21 07:48:08 143

原创 109. 有序链表转换二叉搜索树

文章目录题目描述解题思路代码实现参考文献109. 有序链表转换二叉搜索树题目描述解题思路1、利用快慢指针找到链表的中点代码实现class Solution: def sortedListToBST(self, head: ListNode) -> TreeNode: def get_median(left: ListNode, right: ListNode) -> TreeNode: fast = slow = left

2021-06-27 10:49:39 153

原创 1600. 皇位继承顺序

文章目录题目描述解题思路代码实现参考文献1600. 皇位继承顺序题目描述解题思路1、哈希表保存父子间的关系2、保存死亡名单3、前序遍历多叉树获取继承顺序并排除已死亡人员代码实现class ThroneInheritance: def __init__(self, kingName: str): self.king = kingName self.deathed = set() self.nodes = defaultdict(lis

2021-06-23 08:19:16 235

原创 99. 恢复二叉搜索树

文章目录题目描述解题思路代码实现参考文献99. 恢复二叉搜索树题目描述解题思路根据题意,中序遍历找到第一个升序顺序错乱最大值节点,和最后一个升序顺序错乱的最小值节点。然后交换两个节点val即可。代码实现class Solution: def recoverTree(self, root: TreeNode) -> None: """ Do not return anything, modify root in-place instead.

2021-06-18 08:06:47 145

原创 1457. 二叉树中的伪回文路径

文章目录题目描述解题思路代码实现参考文献1457. 二叉树中的伪回文路径题目描述解题思路1、二叉树前序遍历2、位运算代码实现class Solution: def pseudoPalindromicPaths (self, root: TreeNode) -> int: if not root: return 0 self.res = 0 def pre_order(root: TreeNode, num:

2021-06-17 08:15:14 162

原创 951. 翻转等价二叉树

文章目录题目描述解题思路代码实现参考951. 翻转等价二叉树题目描述解题思路1、flipEquiv()判断两颗树是否相等2、root1, root2都为空,看左右子树;3、root1, root2有一个为空或值不等,不相等代码实现class Solution: def flipEquiv(self, root1: TreeNode, root2: TreeNode) -> bool: if not root1 and not root2:

2021-06-15 07:50:17 216 1

原创 1026. 节点与其祖先之间的最大差值

文章目录题目描述解题思路代码实现1026. 节点与其祖先之间的最大差值题目描述解题思路回溯法max_val, min_val记录子树到叶子节点最大、最小值叶子节点计算最大差值代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left

2021-06-13 07:50:25 210

原创 1123. 最深叶节点的最近公共祖先

文章目录题目描述解题思路代码实现参考1123. 最深叶节点的最近公共祖先题目描述解题思路如果当前节点是最深叶子节点的最近公共祖先,那么它的左右子树的高度一定是相等的,否则高度低的那个子树的叶子节点深度一定比另一个子树的叶子节点的深度小,因此不满足条件。所以只需要dfs遍历找到左右子树高度相等的根节点即出答案。代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, lef

2021-06-11 07:47:55 178

原创 814. 二叉树剪枝

文章目录题目描述解题思路代码实现参考814. 二叉树剪枝题目描述解题思路1、树的剪枝代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solut

2021-06-10 08:10:17 252

原创 979. 在二叉树中分配硬币

文章目录题目描述代码实现参考979. 在二叉树中分配硬币题目描述代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def

2021-06-09 08:21:07 191

原创 1448. 统计二叉树中好节点的数目

文章目录题目描述解题思路代码实现参考1448. 统计二叉树中好节点的数目题目描述解题思路1、方法一:先序遍历,max_val:截止到当前节点前的路径中的最大值2、方法二:回溯法代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left

2021-06-08 08:12:50 173

原创 1104. 二叉树寻路

文章目录题目描述解题思路代码实现参考1104. 二叉树寻路题目描述解题思路因为以1为根节点层次编号的满二叉树可以对应到位的表示,所以用位运算的思路即可。因为每层的顺序在变,所以每次需要对首位外的其它位取反。举例14=1110b,先将14右移,变为111b,然后对除第一位外所有位取反变为100b,即它的根节点4,同理100b,右移变为10b,对除第一位外所有位取反变为11b,即它的根节点3一直到1结束。代码实现class Solution: def pathInZigZag

2021-06-04 08:10:08 149

原创 面试题 04.10.检查子树

文章目录题目描述代码实现参考面试题 04.10.检查子树题目描述代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def checkSubTree(self, t1: TreeN

2021-06-01 08:09:12 182

原创 1325. 删除给定值的叶子节点

文章目录题目描述解题思路代码实现参考1325. 删除给定值的叶子节点题目描述解题思路1、不要问为什么。递归代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = right

2021-05-31 08:16:11 247

原创 1261. 在受污染的二叉树中查找元素

文章目录题目描述解题思路代码实现参考1261. 在受污染的二叉树中查找元素题目描述解题思路1、重建跟二叉树遍历思路一样2、查找过程这里是直接存下载,在参考中还有更好的方案代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = l

2021-05-26 08:23:12 161

原创 1305. 两棵二叉搜索树中的所有元素

文章目录题目描述解题思路代码实现1305. 两棵二叉搜索树中的所有元素题目描述解题思路二叉搜索树中序遍历 + 归并排序中合并有序列表代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution:

2021-05-24 22:10:45 191

原创 894. 所有可能的满二叉树

文章目录题目描述代码实现参考894. 所有可能的满二叉树题目描述代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def

2021-05-24 21:47:59 169

原创 面试题 04.03. 特定深度节点链表

文章目录题目描述解题思路代码实现面试题 04.03. 特定深度节点链表题目描述解题思路1、层次遍历 + 构造链表代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = None# Definition for singly-li

2021-05-19 08:12:39 146

原创 1315. 祖父节点值为偶数的节点和

文章目录题目描述解题思路代码实现参考1315. 祖父节点值为偶数的节点和题目描述解题思路1、层次遍历、深度优先均可,比正常这些方法多一点是需要记录父节点和祖父节点代码实现# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Nonec

2021-05-18 08:17:31 161

Redis快速实战教程讲义

Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的应用程序的完美解决方案。 Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性。 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。 Redis可以将数据复制到任意数量的从服务器。

2018-03-15

LDA数学八卦,主题模型LDA的数据知识

对LDA通俗易懂的介绍,入门必读。LDA:隐狄利克雷分布,是主题模型重重要一员。其中包含的大量数学内容均有所展现。

2017-01-03

统计学习方法-李航

《统计学习方法》全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。

2018-06-07

LDA漫游指南

LDA(Latent Dirchlet Allocation)算法是主题模型领域非常著名的算法,值得深入研究应用,该算法也有很深刻的数学背景和技术启发。曾经有哲人说:万物皆数。我个人是个十分喜欢数学,喜欢算法,热爱技术的人,非常想从算法中寻找人工智能的永恒之道。

2018-03-19

zookeeper入门指南

Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务 A、zookeeper是为别的分布式程序服务的 B、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) C、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称服务…… D、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能: 管理(存储,读取)用户程序提交的数据; 并为用户程序提供数据节点监听服务;

2018-03-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除