自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 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 158

原创 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 268

原创 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 118

原创 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 137

原创 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

原创 列表转化为二叉树,二叉树层次遍历 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 1291

原创 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

原创 把数组中的零移动到末尾

Day37 作业题 把数组中的零移动到末尾给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]def moveZeros(nums): p=0 for j in range(1,len(nums)): if nums[p]!=0 and nums[j]!=0: p+=1 elif nums[p]==0 and nu

2020-06-29 20:32:38 1905

原创 合并区间

给出一个区间的集合,请合并所有重叠的区间。示例 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

原创 寻找有序数组元素插入位置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 282

原创 合并两个有序链表 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-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 1591

原创 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 118

原创 Leetcode118 杨辉三角 Python版本

杨辉三角给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]递归class Solution: def generate(self, numRows: int) -> [[int]]: print(numRows) if numRows==0: .

2020-06-15 10:40:24 137

原创 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

原创 归并排序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 436 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 151

原创 #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

原创 #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 176

原创 算法时间复杂度分析

#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 460

原创 打卡##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 320

原创 LFM_隐语义模型_laten factor model

LFM前世今生源于SVD(奇异值分解)方法的改进,传统svd是线性代数典型问题;SVD可用于矩阵评分矩阵的补全,但由于计算量过大,实际上只适用于规模很小的系统Simon Funk 改进SVD(Funk-SVD),后来被称为LFMLFM关键公式LFM通过如下公式计算用户u对i的兴趣这个公式中 p_uk 和 q_ik 是模型的参数,其中p_uk度量了用户u的兴趣和第k个隐类的关系,而q...

2020-06-04 13:21:46 258

原创 带头节点版本的单链表(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

原创 Python_正则

a$:任意以a结尾的字符方式1regex=re.compile('[0-9]+')res=re.findall(regex,'12321312321sddgfgf33223bbvcbv')print(res)方式2mystr='12aaaafdfdsf4345345cccc're.sub('[0-9]+','',mystr)...

2019-06-26 17:36:50 77

原创 Python_装饰器

#装饰器#普通装饰器def func1(func): def add_func(): print('添加功能') return func() #注释这一句就是一个最简单的闭包函数 #func 函数 #func() 函数调用 print('1') return add_func@func1 #装饰器函...

2019-06-26 16:54:38 74

原创 闭包

闭包上述比较空泛,直接上代码demo1:def waibu(): a=1 #非全局变量 def nei(): print(a) return nei#闭包func = waibu() #-》内部函数#外部函数返回值func()demo2:def func(num): def func1(num1): pri...

2019-06-26 16:04:48 83

空空如也

空空如也

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

TA关注的人

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