- 博客(91)
- 收藏
- 关注
原创 leetcode122买卖股票
买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 这里我们只要注意就是比较每一个相邻的极大值和前一个极小值的差的总和就是我们需要的值。 class Solution: def maxProfi...
2020-03-25 22:37:18
153
原创 python第22天
恢复二叉搜索树 二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例 1: 输入: [1,3,null,null,2] 1 / 3 2 输出: [3,1,null,null,2] 3 / 1 2 示例 2: 输入: [3,1,4,null,null,2] 3 / 1 4 / 2 输出: [2,1,4,null,null,3] 2 / 1 4 / 3...
2020-03-24 22:33:56
151
原创 python第22天
不同的二叉搜索树 II 给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。 示例: 输入: 3 输出: [ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2,null,3] ] 解释: 以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 ...
2020-03-23 22:29:24
157
原创 python第20天
二叉树的中序遍历 这里先写一个大家都比较熟悉的递归算法 class Solution: def inorderTraversal(self, root: TreeNode) -> List[int]: res = [] def helper(root): if not root: return ...
2020-03-22 21:51:43
138
原创 python练习第19天
二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 这个就是通过递归 class Solution: def maxDepth(self, root): “”" :type root: TreeNode :rtype: int ...
2020-03-21 18:56:36
139
原创 python算法第18天
给定一个二叉树,检查它是否是镜像对称的。 关于递归的问题主要就是找到递归公式,这里呢就是左子树和右子树进行的递归 lass Solution(object): def isSymmetric(self, root): if not root: return True def dfs(left,right): i...
2020-03-20 20:03:35
100
原创 python练习第19天
两个相同的树 class Solution: def isSameTree(self, p: TreeNode, q: TreeNode) -> bool: if p == None and q == None: return True if p == None or q == None: return ...
2020-03-19 19:25:14
106
原创 python学习第17天
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ‘*’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。 这里涉及到动态匹配和回溯算法,我在学习时候也不太...
2020-03-18 21:47:46
234
原创 python第17天
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所...
2020-03-17 19:06:56
103
原创 算法练习第16天
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。 示例 3: 输入: “pwwkew” 输出: 3 解释: 因为无重复字符的最长子串是 “wke”,所...
2020-03-16 21:38:23
105
原创 leetcode第15天
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 class Solution(object): def isValid(self, s): stack = [] judge = {'()',...
2020-03-15 19:53:23
100
原创 python第13天
最长公共前缀 难度 简单 910 收藏 分享 切换为英文 关注 反馈 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 我们这个问题通过纵向搜索来解决,...
2020-03-14 21:02:48
89
原创 leetcode算法练习13天
罗马数字转整数 难度 简单 822 收藏 分享 切换为英文 关注 反馈 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M ...
2020-03-13 19:59:16
176
原创 算法练习第11天
合并K个排序链表 难度 困难 515 收藏 分享 切换为英文 关注 反馈 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 今天的题目我没什么思路就大致的参考了解答用C++写了一...
2020-03-12 22:40:56
168
原创 python练习第10天
删除l链表中倒数第n值 这里用了双指针的巧妙运用就是,第一个指针先运动n+1个距离然后使得连两个指针之间的距离为n,然后一起运动使这样的距离保持到末尾这样就找到了那个第n个值 class Solution: def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode: a = head ...
2020-03-11 19:03:06
102
原创 leetcode第十天算法练习
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 这里比较重要的是两点,一个是注意最后两个位数相加仍会超过10导致的进位问题,一个是链表递归方法的运用 class Solution: ...
2020-03-10 20:02:37
131
原创 leetcode第八天python算法链表
给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 快慢指针如果,快指针能追到慢指针就说明有环 class Solution: def hasCycle(self, head: ListNode) -> bool: slow = head quick = head...
2020-03-09 22:04:42
148
1
原创 leetcode算法练习第7天
删除排序链表中的重复元素 难度 简单 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次 这是一道链表的基础题,考验我们对基础链表功能的应用 class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: p = head if p==None or p.ne...
2020-03-08 19:07:20
123
原创 python练习第7天
今天的算法比较简单,将两个有序数组合并,一个递归可以解决,不过我看了看我以前的做法,发现java是要比python快一些,不知道是不是差异 class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: res = ListNode(None) node ...
2020-03-07 20:37:51
180
原创 leetcode股票问题,第五天
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [3,3,5,0,0,3,1,4] 输出: 6 解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 =...
2020-03-06 20:27:29
141
原创 python3算法训练第五天
Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would ...
2020-03-05 20:06:08
141
原创 python算法练习第四天,三数求和
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 我看到题目一开...
2020-03-04 19:35:29
833
原创 leetcode练习第三天python
给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为...
2020-03-03 09:52:27
112
原创 寻找有序数组中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)...
2020-03-02 20:24:43
361
原创 算法加强练习第一天(python)
用python来解答一下我前几个月做过的算法练习。 class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: n=len(nums) if n<2: return None map={} for ...
2020-03-01 12:07:31
312
原创 逻辑斯蒂回归
有一些数据点,我们用一条直线对这些点进行拟合,这个拟合的过程称作回归。 逻辑斯蒂回归是针对线性可分问题的一种易于实现而且性能优异的分类模型,是使用最为广泛的分类模型之一。假设某件事发生的概率为p,那么这件事不发生的概率为(1-p),我们称p/(1-p)为这件事情发生的几率。取这件事情发生几率的对数,定义为logit§,所以logit§为 我们需要确定对应的系数 ————————————————...
2019-11-23 21:05:11
127
原创 leetcode学习机器算法
朴素贝叶斯公式 条件概率公式 P(A|B) = P(B|A) P(A) / P(B) 即在b事件发生之前,我们对a事件概率的判断。 通过这我们可以通过这来学习贝叶斯分类器 核心思想是选择高概率对应的类别 通过先验概率和条件概率,来计算后验概率 # encoding=utf-8 import pandas as pd import numpy as np import cv2 import tim...
2019-11-23 20:37:00
184
原创 python学习
1.模块 容器->数据的封装 函数->语句的封装 类->方法和属性的封装 模块->程序文件 模块是一个包含所有你定义的函数和变量的文件 2.命名空间 内置命名空间:python自带自动运行 全局命名空间:不同模块的全局命名空间彼此独立 本地命名空间:模块内的函数或者类所定义的命名空间 3.导入模块 创建一个模块 第一种:import模块名 第二种:from模块名import...
2019-11-05 17:46:31
69
原创 python学习
1.魔法方法 魔法方法总是被双下划线包围,例__init__ 第一个参数cls类方法或者self。 魔法方法会在适当的时候自动调用 算术运算符 通过函数来代替类 3.反算术运算符 比算法运算符多了一个r当文件左操作不支持相应的操作时被调用 4.增量运算符 5.一元运算符 6.属性访问 7. 迭代器 迭代器时一个可以记住遍历位置的对象 迭代器只能前进不能后退 字符串,列表或者元组都可以用于创建迭代器...
2019-11-04 21:01:08
75
原创 python学习10天
1.对象 封装:信息隐蔽技术 通过class定义类,关键字 继承:子类自动共享父类之间数据和方法的机制 多态 不同对象对同一方法响应不同的行动 class people(Animal): class Pig(Animal): 2.self是 self即c++的this指针 3.python 类由一个——init–(self[param1,param2]) 4公有私有 在变量函数名前面加–两个下划...
2019-11-02 20:33:47
206
原创 python第九天
while else 和 for else和正常的没有区别,else中的语句会在循环执行完的情况下执行 try except else语句在昨天的学习中已经提到过了 2.简洁的with语句 with保证文件之类的对象在使用完之后会正确的执行的清理方式 ...
2019-10-31 21:01:53
90
原创 第8天python学习
异常处理 ## try except语句 首先,执行try语句如果由异常,且异常的类型和except之后的名称相符执行except子句,没有异常则对其进行忽略。异常未找到匹配类型则返回上层try. finally语句不论,try结果如何都会执行finally语句 raise语句 抛出一个指定的异常。 ...
2019-10-30 21:12:29
90
原创 python学习第七天
打开文件 open(file,mode=‘r’,buffering=-1,encoding=None,errors=None,newline=None) file时文件路径 f=open(‘一二三.txt’) 文件对象方法 fileobject.close()关闭一个一打开的文件 fileobject.read([read])用于从文件读取指定的字符串,如果未给定或为负则读取所有 os模块中关于文...
2019-10-28 22:38:48
85
原创 python学习第7天
1.字典 1.序列是以连续的整数为索引,与此不同的是,字典以关键字为索引。 2.字典是python唯一的一个映射类型,字符串。 用id(x)函数,对x进行某种操作比较前后的id,如果不一样则可变。 通过hash(x),不报错证明x可被哈希即不可变。 { 元素1,元素2,元素3,。。。 } 创建和访问字典。 字典是无序的键 dict1={1:‘2’,3:‘4’} dict(obj)函数用于创建一个...
2019-10-27 18:49:57
111
原创 python第5天学习
1.函数 函数以def开头,后面接函数名和圆括号()。 函数执行的代码以冒号为起始,并且缩进。 return[]结束函数选择返回一个值给调用方不用表达式return相当于返回none。 可以没有返回值。 def function(d): "ddd" return(c) 函数的调用 temp=function(s)#wemp是s print(t...
2019-10-26 21:00:06
102
原创 leetcode第四天任务
1.字符串 python可以用成对的单引号和双引号。 tl='lkj' t2="holle" \n换行 \t,横向制表符 \r回车 原始字符串需要在字符串前边加一个英文字母r python三引号允许一个字符串跨多行,字符串中间可以包含换行指标符等特殊字符 字符串的切片 1.具有不可修改性 2.从0开始算 3.算头不算尾,start:end 4.索引可正可负 字符串的常用内置方法 capitali...
2019-10-24 19:31:49
134
原创 python第三天学习
今天学习的是容器类型的数据,例如:列表,元组,字典,集合,字符串。 列表 1.列表是有序集合,可以保存任意数量和任意类型的python对象。 2.通过逗号将彼此隔离开 number=[1,2,3,4,5,6] #[1,2,3,4,5,6] 列表中的元素可以更改,所以可以对他进行操作。 append()在列表末尾添加新的对象 一次只能加一个 如果append中的元素是list那么他会被当作一个整体...
2019-10-22 23:01:13
212
原创 python学习第二天
1.条件语句 我在这里列举的是python语言和其他语言的不一样的地方,一样的地方就不说。 if 1.单个if语句可以通过and or not实现多重条件判断 if 2>1 and not 2>3; 2.python使用缩进而不用大括号来标记代码块 所以我们在使用的时候要注意ps:else后需要加冒号 例如 if 2>3: print('haha') ...
2019-10-21 20:27:40
85
原创 python学习第一天
变量: 变量类似为数据的标签; python无需声明可以直接赋值; 变量名之间不区分大小写。 其他时候python关于变量的运用与其他语言类似。 运算符 分为操作运算符和比较运算符 操作运算符可以分为+,-,*,/ 比较特殊的是表示xy,返回值是x的y次幂 // 表示的是相除后向下取整 比较运算符和其他语言类似我在这里就不记录了。 优先级的话也与其他语言类似 数据类型 常见数据类型 为整型,浮...
2019-10-20 17:23:21
80
原创 leetcode第50天
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: “Let’s take LeetCode contest” 输出: “s’teL ekat edoCteeL tsetnoc” 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/...
2019-10-14 22:22:56
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人