
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 · 180 阅读 · 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 · 245 阅读 · 0 评论 -
leetcode-python答案汇总之三_链表&双指针类算法题
待补充原创 2020-02-19 16:36:28 · 157 阅读 · 0 评论 -
leetcode-python答案汇总之二_二分查找类算法题
binary search 总结 **二分题的类型有: 搜索排序数组,搜索旋转排序数组,找峰值、找低谷、找插入位置,平方根、幂运算 搜索旋转排序数组时,大部分要先二分找到旋转后的最小值位置,再二分去找别的东西 待补充 ...原创 2020-02-19 16:31:48 · 189 阅读 · 0 评论 -
leetcode题python答案汇总之五_DFS (回溯)
回溯题汇总(39, 40, 46, 47, 78, 90) 待补充。。。原创 2020-02-16 21:17:22 · 456 阅读 · 0 评论 -
leetcode题python答案汇总之一_数学
8. 字符串转换整数 (atoi) 提示: 字符串操作,首选正则,其他方式筛不干净!!强大的正则,把正负号筛选也写进去。 import re class Solution(object): def myAtoi(self, str): """ :type str: str :rtype: int """ str...原创 2020-02-14 18:08:35 · 284 阅读 · 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 · 101 阅读 · 0 评论 -
leetcode182. 查找重复的电子邮箱
方法1.直接法 思路: 用group by Email 分组后,数据个数大于1的就是重复的 # Write your MySQL query statement below Select Email from Person group by Email having count(Email) > 1 ...原创 2019-10-04 20:19:51 · 241 阅读 · 0 评论 -
leetcode175. 组合两个表
方法1.直接法 # Write your MySQL query statement below select FirstName, LastName, City, State from Person left join Address on Person.PersonId = Address.PersonId原创 2019-10-04 20:09:23 · 141 阅读 · 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 · 115 阅读 · 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 · 103 阅读 · 0 评论 -
leetcode167. 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 解法1: 双指针夹逼法 / 对撞指针法 思路: 两个指针分别从最左和最右向...原创 2019-09-22 20:40:31 · 127 阅读 · 0 评论 -
leetcode160. 相交链表
编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 解法1.双指针法 思路: 两个指针分别从两个head开始,直至达到末尾,然后从另一个head开始,当两指针相遇,即为相交节点 # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # s...原创 2019-09-22 20:14:17 · 120 阅读 · 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 · 100 阅读 · 0 评论 -
leetcode112.路径总和
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 解法一: 递归 思路: 将结果存在数组中,左右分别求,再合并。利用列表推导式 class Solution(object): def hasPathSum(self, root, sum): """ :typ...原创 2019-09-04 00:05:18 · 106 阅读 · 0 评论 -
leetcode118.杨辉三角
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 1.直接法 思路: 逐层计算每层的数组,每层的数组的值都基于上一层数组的值计算得到 class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[Lis...原创 2019-09-09 23:03:59 · 197 阅读 · 0 评论 -
leetcode121. 买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 解法1.动态规划 思路: 最大利润为当天利润和以前利润的最大值 class Solution(object): def maxProfit(self, prices): """ ...原创 2019-09-22 16:00:00 · 119 阅读 · 0 评论 -
leetcode122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 解法1.贪心算法 思路: 找出所有上涨的天数对应的利润,求出所有利润总和就得到最大利润 class Solution(object): def maxProfit...原创 2019-09-22 16:05:07 · 106 阅读 · 0 评论 -
leetcode125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 解法1.正则提取 思路:使用正则表达式提取其中的字母和数字,并转换为小写 class Solution(object): def isPalindrome(self, s): """ :type s: str ...原创 2019-09-22 16:28:06 · 108 阅读 · 0 评论 -
leetcode136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 解法1.tmp数组法 思路:使用一个tmp数组,将nums中的值依次放入tmp中,已经存在就弹出,不存在就放入 class Solution(object): def singleNumber(self, num...原创 2019-09-22 16:37:23 · 96 阅读 · 0 评论 -
leetcode141. 环形链表
给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 解法1:直接法 思路:遍历链表,将已经经过的位置存入target数组,如果遍历位置指向的下一个值位置在target数组中,说表构成环形链表 # Definition for singly-linked list. #...原创 2019-09-22 16:55:31 · 101 阅读 · 0 评论 -
leetcode155. 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 class MinStack(object): def __init__(self): """ initia...原创 2019-09-22 17:45:09 · 116 阅读 · 0 评论 -
leetcode104 and 111 二叉树的最大深度和最小深度
104.二叉树的最大深度 解法1. 递归 思路: 二叉树的最大深度 = 左右子树的最大深度的最大值 + 1 class Solution(object): def maxDepth(self, root): if not root: return 0 else: return 1 + max(self.max...原创 2019-09-02 23:26:41 · 157 阅读 · 0 评论