知识星球打卡
ChengSlime
这个作者很懒,什么都没留下…
展开
-
Leetcode 563. 二叉树的坡度 Python
二叉树的坡度给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。整个树的坡度就是其所有节点的坡度之和。示例:输入:1/ 2 3输出:1解释:结点 2 的坡度: 0结点 3 的坡度: 0结点 1 的坡度: |2-3| = 1树的坡度 : 0 + 0 + 1 = 1提示:任何子树的结点的和不会超过 32 位整数的范围。坡度的值不会超过 32 位整数的范围。class Soluti.原创 2020-07-23 10:51:40 · 156 阅读 · 0 评论 -
leetcode 1371. 每个元音包含偶数次的最长子字符串 Python
每个元音包含偶数次的最长子字符串给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。1 <= s.length <= 5 x 10^5s 只包含小写英文字母。示例 1:输入:s = “eleetminicoworoep”输出:13解释:最长子字符串是 “leetminicowor” ,它包含 e,i,o 各 2 个,以及 0 个 a,u 。示例 2:输入:s = “lee.原创 2020-07-23 10:27:14 · 267 阅读 · 0 评论 -
LeetCode 101. 对称二叉树 Python
对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x.原创 2020-07-20 17:51:34 · 116 阅读 · 0 评论 -
965. 单值二叉树 Python
单值二叉树如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是 [1, 100]。每个节点的值都是整数,范围为 [0, 99] 。class Solution: def isUnivalTree(self, root: TreeNode) -> .原创 2020-07-20 14:40:15 · 135 阅读 · 0 评论 -
111. 二叉树的最小深度 Python
给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最小深度 2.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。递归原创 2020-07-20 11:53:43 · 128 阅读 · 0 评论 -
列表转化为二叉树,二叉树层次遍历 python
Day46: 列表转化为二叉树已知列表nums,将其转化为二叉树。举例:nums = [3,9,20,None,None,15,7],转化为二叉树后,节点3的左子节点9,右子节点20,9的左右子节点都为None,20的左子节点15,右子节点7,参考附件图片1二叉树定义:class TreeNode:def init(self, x):self.val = xself.left = Noneself.right = None请补全下面函数:def list_to_binarytree(nu原创 2020-07-20 10:52:38 · 1290 阅读 · 0 评论 -
leetcode287. 寻找重复数 python
寻找重复数给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。二分法class Solution: .原创 2020-07-03 13:43:20 · 213 阅读 · 1 评论 -
合并区间
给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。补全下面代码:class Solution(object):def merge(self, intervals):说明原创 2020-06-29 18:56:28 · 128 阅读 · 0 评论 -
寻找有序数组元素插入位置2
大家注意观察,上面的示例 1:输入: [1,3,5,6], 待插入元素为 5 输出: 2这意味着如果出现重复元素,则靠前插入。如果插入 5,输出 3 ,靠后插入。榴芒做法class Solution(object): def searchInsert(self, nums, target): left,right = 0,len(nums)-1 while left<=right: mid = (left+right)//2原创 2020-06-25 10:37:54 · 280 阅读 · 0 评论 -
合并两个有序链表 leetcode 21 Python
合并两个有序链表将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4递归# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self..原创 2020-06-25 10:11:55 · 140 阅读 · 1 评论 -
计算幂次函数
%%timedef pow(x,n): hash_map={0:0,1:x} def helper(x,n): if n not in hash_map: hash_map[n]=helper(x,n//2)*helper(x,n-n//2) return hash_map[n] return helper(x,n) if n>=0 else 1/helper(x,-n)for i in range(1000原创 2020-06-21 21:17:07 · 480 阅读 · 0 评论 -
#0-1背包问题多解(线性规划,普通解)Python实现
0-1 背包是一个经典的组合优化问题,其中的思想非常重要。今天我们以一个简单的例子,先来体会 0-1 背包问题。有一个最大承重量为w的背包,第i件物品的价值为a1[i],第i件物品的重量为a2[i],将物品装入背包,求解背包内最大的价值总和可以为多少?例子:a1 = [100, 70, 50, 10], a2 = [10, 4, 6, 12], w = 12, 背包内的最大价值总和为 120,分别装入重量为4和6的物品,能获得最大价值为 120补全下面代码,返回求解的最大价值:转换成线性规划问题原创 2020-06-19 23:49:03 · 1589 阅读 · 0 评论 -
Leetcode 509. 斐波那契数 python 实现
斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。class Solution: def fib(self, N: int) -> int: if N<1: return 0 i.原创 2020-06-16 14:52:30 · 116 阅读 · 0 评论 -
Leetcode24 两两交换链表中的节点 Python
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Solution: def swapPair原创 2020-06-14 22:46:54 · 83 阅读 · 0 评论 -
归并排序Python实现
给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-an-array著作权归领扣网络所原创 2020-06-11 12:11:47 · 435 阅读 · 1 评论 -
Leetcode 88. 合并两个有序数组 Python实现
给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6]来源:力扣(LeetCode)链原创 2020-06-10 11:27:45 · 150 阅读 · 0 评论 -
#Leetcode 21,合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。递归解法:class Solution:原创 2020-06-10 10:22:45 · 169 阅读 · 0 评论 -
#LeetCode 704 二分查找 Python实现
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1提示:你可以假设 nums 中的所原创 2020-06-09 10:45:03 · 174 阅读 · 0 评论 -
算法时间复杂度分析
#day16打卡复杂度是衡量代码运行效率的重要的因素,复杂度是一个关于输入量n的函数。它与具体的常系数无关,O(n) 和 O(2n) 表示的是同样的复杂度。O(1) 也是表示一个特殊复杂度,即任务与算例个数 n 无关。其次,多项式级的复杂度相加的时候,选择高者作为结果,例如 O(n²)+O(n) 和 O(n²) 表示的是同样的复杂度。具体分析一下就是,O(n²)+O(n) = O(n²+n),复杂度相加的时候,选择高者作为结果,也就是说 O(n²)+O(n) 和 O(n²) 表示的是同样的复杂度。原创 2020-06-07 16:35:28 · 459 阅读 · 0 评论 -
打卡##LeetCode206. 反转链表 Python解法
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?链接:https://leetcode-cn.com/problems/reverse-linked-list/解法1:看图说话class Solution: def reverseList(self, head: ListNode) ->原创 2020-06-05 11:18:31 · 317 阅读 · 0 评论 -
带头节点版本的单链表(Python实现)
###打卡,带头节点版本的单链表(Python实现)Day 13 :访问链表第i个节点依然考虑到新接触链表的朋友不习惯使用它,本次作业还是强化下链表的基本操作。class Node: def __init__(self,x=None): self.value=x self.next=None class SingleLinkedList: #带头节点版本的单链表 def __init__(self): self.原创 2020-06-04 13:17:51 · 419 阅读 · 0 评论