leetcode
Flying fish32
这个作者很懒,什么都没留下…
展开
-
二叉树前中后序遍历,递归与非递归,leetcode
leetcode 144. 二叉树的前序遍历递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), r...原创 2020-04-19 11:39:02 · 149 阅读 · 0 评论 -
leetcode-python答案汇总之四_树&DFS&BFS
leetcode94. 二叉树的中序遍历解法1: 传统递归法res=[]def inorder2(root): if not root: return #[None]将返回None, []就返回空 else: inorder(root.left) res.append(root.val) inorde...原创 2020-02-19 17:29:35 · 215 阅读 · 0 评论 -
leetcode-python答案汇总之三_链表&双指针类算法题
待补充原创 2020-02-19 16:36:28 · 128 阅读 · 0 评论 -
leetcode-python答案汇总之二_二分查找类算法题
binary search 总结**二分题的类型有:搜索排序数组,搜索旋转排序数组,找峰值、找低谷、找插入位置,平方根、幂运算搜索旋转排序数组时,大部分要先二分找到旋转后的最小值位置,再二分去找别的东西待补充...原创 2020-02-19 16:31:48 · 157 阅读 · 0 评论 -
leetcode题python答案汇总之五_DFS (回溯)
回溯题汇总(39, 40, 46, 47, 78, 90)待补充。。。原创 2020-02-16 21:17:22 · 422 阅读 · 0 评论 -
leetcode题python答案汇总之一_数学
8. 字符串转换整数 (atoi)提示: 字符串操作,首选正则,其他方式筛不干净!!强大的正则,把正负号筛选也写进去。import reclass Solution(object): def myAtoi(self, str): """ :type str: str :rtype: int """ str...原创 2020-02-14 18:08:35 · 246 阅读 · 0 评论 -
leetcode189. 旋转数组
方法1.拼接数组法思路: 队尾各项 + 队首各项之和class Solution(object): def rotate(self, nums, k): """ :type nums: List[int] :type k: int :rtype: None Do not return anything, modify n...原创 2019-10-04 20:33:42 · 75 阅读 · 0 评论 -
leetcode182. 查找重复的电子邮箱
方法1.直接法思路: 用group by Email 分组后,数据个数大于1的就是重复的# Write your MySQL query statement belowSelect Email from Person group by Email having count(Email) > 1...原创 2019-10-04 20:19:51 · 213 阅读 · 0 评论 -
leetcode175. 组合两个表
方法1.直接法# Write your MySQL query statement belowselect FirstName, LastName, City, Statefrom Person left join Addresson Person.PersonId = Address.PersonId原创 2019-10-04 20:09:23 · 104 阅读 · 0 评论 -
leetcode172. 阶乘后的零
解法1: 递归法思路: 0的个数为因子中5的个数class Solution(object): def trailingZeroes(self, n): """ :type n: int :rtype: int """ if n < 5: return 0 r...原创 2019-09-22 21:02:44 · 90 阅读 · 0 评论 -
leetcode168. Excel表列名称
给定一个正整数,返回它在 Excel 表中相对应的列名称。例如,解法1: 直接转换法思路: 运用ASCII码转换函数chr进行转换class Solution(object): def convertToTitle(self, n): """ :type n: int :rtype: str """ ...原创 2019-09-22 20:57:17 · 81 阅读 · 0 评论 -
leetcode167. 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。解法1: 双指针夹逼法 / 对撞指针法思路: 两个指针分别从最左和最右向...原创 2019-09-22 20:40:31 · 101 阅读 · 0 评论 -
leetcode160. 相交链表
编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:解法1.双指针法思路: 两个指针分别从两个head开始,直至达到末尾,然后从另一个head开始,当两指针相遇,即为相交节点# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# s...原创 2019-09-22 20:14:17 · 89 阅读 · 0 评论 -
leetcode107. 二叉树的层次遍历 II
解法1.层次遍历 + 队列思路: 套用BFS的层次遍历方法,逐层输出到数组中class Solution(object): def levelOrderBottom(self, root): """ :type root: TreeNode :rtype: List[List[int]] """ reli...原创 2019-09-02 23:52:10 · 85 阅读 · 0 评论 -
leetcode112.路径总和
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。解法一: 递归思路: 将结果存在数组中,左右分别求,再合并。利用列表推导式class Solution(object): def hasPathSum(self, root, sum): """ :typ...原创 2019-09-04 00:05:18 · 79 阅读 · 0 评论 -
leetcode118.杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。1.直接法思路: 逐层计算每层的数组,每层的数组的值都基于上一层数组的值计算得到class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[Lis...原创 2019-09-09 23:03:59 · 148 阅读 · 0 评论 -
leetcode121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。解法1.动态规划思路: 最大利润为当天利润和以前利润的最大值class Solution(object): def maxProfit(self, prices): """...原创 2019-09-22 16:00:00 · 91 阅读 · 0 评论 -
leetcode122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。解法1.贪心算法思路: 找出所有上涨的天数对应的利润,求出所有利润总和就得到最大利润class Solution(object): def maxProfit...原创 2019-09-22 16:05:07 · 77 阅读 · 0 评论 -
leetcode125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。解法1.正则提取思路:使用正则表达式提取其中的字母和数字,并转换为小写class Solution(object): def isPalindrome(self, s): """ :type s: str ...原创 2019-09-22 16:28:06 · 78 阅读 · 0 评论 -
leetcode136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?解法1.tmp数组法思路:使用一个tmp数组,将nums中的值依次放入tmp中,已经存在就弹出,不存在就放入class Solution(object): def singleNumber(self, num...原创 2019-09-22 16:37:23 · 69 阅读 · 0 评论 -
leetcode141. 环形链表
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。解法1:直接法思路:遍历链表,将已经经过的位置存入target数组,如果遍历位置指向的下一个值位置在target数组中,说表构成环形链表# Definition for singly-linked list.#...原创 2019-09-22 16:55:31 · 77 阅读 · 0 评论 -
leetcode155. 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。class MinStack(object): def __init__(self): """ initia...原创 2019-09-22 17:45:09 · 86 阅读 · 0 评论 -
leetcode104 and 111 二叉树的最大深度和最小深度
104.二叉树的最大深度解法1. 递归思路: 二叉树的最大深度 = 左右子树的最大深度的最大值 + 1class Solution(object): def maxDepth(self, root): if not root: return 0 else: return 1 + max(self.max...原创 2019-09-02 23:26:41 · 122 阅读 · 0 评论