LeetCode_Python
Elmerr
这个作者很懒,什么都没留下…
展开
-
leetcode 1388. 3n 块披萨 动态规划 python
leetcode 1388. 3n 块披萨 动态规划 python题目描述分析代码题目描述给你一个披萨,它由 3n 块不同大小的部分组成,现在你和你的朋友们需要按照如下规则来分披萨:你挑选 任意 一块披萨。Alice 将会挑选你所选择的披萨逆时针方向的下一块披萨。Bob 将会挑选你所选择的披萨顺时针方向的下一块披萨。重复上述过程直到没有披萨剩下。每一块披萨的大小按顺时针方向由循环数组...原创 2020-03-23 15:32:54 · 585 阅读 · 0 评论 -
leetcode 1383. 最大的团队表现值 Python
思路:先按efficiency进行降序排列,然后同时遍历排序后的speed和efficiency,在遍历过程中进行这几项操作:(1)将speed放入最小堆中,(2)保持堆的大小为k,(3)记录堆中speed之和,(4)寻找最大团队表现值。献上代码:import heapqclass Solution: def maxPerformance(self, n: int, speed...原创 2020-03-16 19:32:27 · 383 阅读 · 0 评论 -
LeetCode 215 数组中的第K个最大元素(Kth Largest Element in an Array) python实现
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。分析:受启发于快速排...原创 2019-04-17 00:05:29 · 212 阅读 · 0 评论 -
[leetcode 543] 二叉树的直径 Diameter of Binary Tree (python)
题目描述给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。示例 :给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。注意:两结点之间的路径长度是以它们之间边的数目表示。分析每个结点...原创 2019-04-06 15:00:05 · 167 阅读 · 0 评论 -
[leetcode 235 236] 二叉搜索树/二叉树的最近公共祖先 详解 (python)
题目描述见原网址:235. 二叉搜索树的最近公共祖先236. 二叉树的最近公共祖先分析LCA(Lowest Common Ancestors)问题,即最近公共祖先。235根据二分搜索树的性质,某个节点的左子树所有的值均小于该节点的值,而右子树所有节点的值均大于该节点的值,所以有三种情况:p、q 的值均小于节点的值,则在节点左子树中寻找公共祖先p、q 的值均大于节点的值,则在节点...原创 2019-04-06 14:35:22 · 708 阅读 · 0 评论 -
[Leetcode 349 350] 两个数组的交集 两个数组的交集 II (python)
题目描述349给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]350给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], n...原创 2019-04-05 00:24:11 · 118 阅读 · 0 评论 -
剑指offer 寻找二叉树的下一个节点 python
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。方法一:根据题意,既然是找出中序遍历的下一个节点,那就先进行中序遍历,将节点存于数组,返回要求节点的下一个节点即可,注意若要求节点为最后一个节点,则返回None。代码如下:# -*- coding:utf-8 -*-# clas...原创 2019-03-25 15:29:02 · 263 阅读 · 0 评论 -
剑指offer leetcode260 数组中只出现一次的数字 python实现两种方法
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。方法一:字典# -*- coding:utf-8 -*-class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): num_dict = dict(...原创 2019-03-21 17:40:13 · 273 阅读 · 0 评论 -
Leetcode 53 最大子序和(python)
给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解法一:动态规划class Solution:...原创 2019-03-19 17:39:20 · 129 阅读 · 0 评论 -
Leetcode 21 合并链表(python)
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。方法一(非递归):# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution...原创 2019-02-17 13:30:50 · 100 阅读 · 0 评论 -
[LeetCode 94 144 145] 二叉树前序、中序和后序遍历总结(python)
给定一个二叉树,返回它的前序、中序 和后序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: 前序:[1,2,3]中序:[1,3,2]后序:[3,2,1]进阶:递归算法很简单,你可以通过迭代算法完成吗?本文分别使用递归和迭代算法实现。首先使用递归算法,就像上面所说,非常简单,几行代码搞定。前序...原创 2019-01-26 11:10:37 · 137 阅读 · 0 评论 -
Leetcode 441. 排列硬币(Python)
你总共有n枚硬币,你需要将它们摆成一个阶梯形状,第k行就必须正好有k枚硬币。给定一个数字n,找出可形成完整阶梯行的总行数。n是一个非负整数,并且在32位有符号整型的范围内。示例 1:n = 5硬币可排列成以下几行:¤¤ ¤¤ ¤因为第三行不完整,所以返回2.示例 2:n = 8硬币可排列成以下几行:¤¤ ¤¤ ¤ ¤¤ ¤...原创 2018-07-26 10:46:44 · 1033 阅读 · 0 评论 -
Leetcode 413. 等差数列划分(python)
如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<...原创 2018-07-25 16:42:21 · 1030 阅读 · 0 评论