- 博客(63)
- 收藏
- 关注
原创 珍珠移动距离和(python拼多多)
题目描述:多多鸡有一串长度为L的珍珠项链,上面有N颗珍珠,分布在0到L-1这些位置上。现在多多鸡想把所有的珍珠移动到一起,并且想让所有珍珠移动的距离总和尽可能小。所有的珍珠可以看作在一个环上,珍珠可以向相邻的没有珍珠的位置移动。请给出最优的方案下,所有珍珠移动的距离的总和。输入描述:共两行,第一行是两个整数L,N。(2<N<L<100000)第二行是N...
2019-08-11 17:44:28
559
1
原创 变态跳台阶(python)
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。# -*- coding:utf-8 -*-class Solution: def jumpFloorII(self, number): # write code here #思路:1个台阶一种跳法,2个台阶两种跳法, ...
2019-07-27 10:01:53
287
原创 跳台阶(python)
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。# -*- coding:utf-8 -*-class Solution: def jumpFloor(self, number): # write code here #思路:1个台阶只有一种走法,2个台阶有2种走法,...
2019-07-27 10:00:58
527
原创 有序链表转换二叉搜索树(python)
题目描述:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表:[-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树:# Definition for singly-l...
2019-07-17 16:11:42
743
原创 不同路径III(python)
题目描述:在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格。且只有一个起始方格。 2 表示结束方格,且只有一个结束方格。 0 表示我们可以走过的空方格。 -1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。示例1:输入:[[1,0,0,0]...
2019-07-17 15:29:00
249
原创 从二叉搜索树到更大和树(python)
题目描述:给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件: 节点的左子树仅包含键小于节点键的节点。 节点的右子树仅包含键大于节点键的节点。 左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,n...
2019-07-08 20:59:50
198
原创 使用最小花费爬楼梯(python)——动态规划
题目描述:数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入:cost = [10,15,20]输出:15解释:最低花费是...
2019-06-20 10:44:05
503
原创 加油站(python)
题目描述:在一条环路上有N个加油站,其中第i个加油站有汽油gas[i]升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1个加油站需要消耗汽油cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同...
2019-05-30 19:35:17
1092
原创 全排列(python)
题目描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入:[1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路介绍:使用递归对每一个位置进行遍历,以当前示例为例:刚开始我们的nums_all为[1,2,3],而te...
2019-05-28 17:09:28
6791
1
原创 回文子串(python)
题目描述:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例1:输入:"abc"输出:3解释:三个回文子串:"a","b","c".示例2:输入:"aaa"输出:6说明:6个回文子串:"a","a","a","aa","aa","aaa"注意:输入的字符串...
2019-05-18 20:40:07
1534
原创 子串能表示从1到N数字的二进制串(python)
题目描述:给定一个二进制字符串S(一个仅由若干'0' 和 '1' 构成的字符串)和一个正整数N,如果对于从1到N的每个整数X,其二进制表示都是S的子串,就返回true,否则返回false。示例1:输入:S = "0110", N = 3输出:true示例2:输入:S = "0110", N = 4输出:false提示:1 <= S.l...
2019-05-18 20:07:52
499
原创 旋转数字(python)
题目描述:我们称一个数 X 为好数, 如果它的每位数字逐个地被旋转 180 度后,我们仍可以得到一个有效的,且和 X 不同的数。要求每位数字都要被旋转。如果一个数的每位数字被旋转以后仍然还是一个数字,则这个数是有效的。0, 1, 和 8 被旋转后仍然是它们自己;2 和 5 可以互相旋转成对方;6 和 9 同理,除了这些以外其他的数字旋转以后都不再是有效的数字。现在我们有一个正整数N...
2019-05-18 14:53:08
911
原创 字母异位词分组(python)
题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入:["eat","tea","tan","ate","nat","bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"] ...
2019-05-18 14:33:26
1083
2
原创 在系统中查找重复文件(python)
题目描述:给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。输入列表中的单个目录信息字符串的格式如下:"root/d1/d2/.../dm f1.txt(f1_content) f2.txt(f2_content) ... fn.txt(fn_content)"这意味着...
2019-05-18 14:22:30
1035
原创 特殊等价字符串组(python)
题目描述:你将得到一个字符串数组A。如果经过任意次数的移动,S == T,那么两个字符串S和T是特殊等价的。一次移动包括选择两个索引i和j,且i % 2 == j % 2,并且交换S[j]和S [i]。现在规定,A中的特殊等价字符串组是A的非空子集S,这样不在S中的任何字符串与S中的任何字符串都不是特殊等价的。返回A中特殊等价字符串组...
2019-05-18 11:50:06
348
原创 自定义字符串排序(python)
题目描述:字符串S和T只包含小写字符。在S中,所有字符只会出现一次。S已经根据某种规则进行了排序。我们要根据S中的字符顺序对T进行排序。更具体地说,如果S中x在y之前出现,那么返回的字符串中x也应出现在y之前。返回任意一种符合条件的字符串T。示例:输入:S = "cba"T = "abcd"输出:"cbad"解释:S中出现了字符"a","b","c",...
2019-05-18 10:57:06
1660
原创 任务调度器(python)
题目描述:给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为n的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命...
2019-05-16 10:46:55
891
原创 函数的独占时间(python)
题目描述:给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间。每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用。日志是具有以下格式的字符串:function_id:start_or_end:timestamp。例如:"0:start:0"表示函数 0 从 0 时刻开始运行。"0:end:0"表示函数 0 在 0 时刻结束。...
2019-05-15 09:45:51
306
原创 下一个更大元素II(python)
题目描述:给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例1: 输入:[1,2,1] 输出:[2,-1,2] 解释:第一个1的下一个更大的...
2019-05-14 17:17:53
453
原创 出现次数最多的子树元素和(python)
题目描述:给出二叉树的根,找出出现次数最多的子树元素和。一个结点的子树元素和定义为以该结点为根的二叉树上所有结点的元素之和(包括结点本身)。然后求出出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的元素(不限顺序)。示例1:输入: 返回[2,-3,4],所有的值均只出现一次,以任意顺序返回所有值。示例2:输入: 返回[2]...
2019-05-11 12:22:42
311
原创 从前序与中序遍历序列构造二叉树(python)
题目描述:根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出 前序遍历 preorder =[3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: # Definition for a binary tree node.# class TreeNode(o...
2019-05-11 11:50:38
597
2
原创 二叉树展开为链表(python)
题目描述:给定一个二叉树,原地将它展开为链表。例如,给定二叉树 将其展开为: # Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None...
2019-05-11 11:21:42
716
原创 从中序与后序遍历序列构造二叉树(python)
题目描述:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: # Definition for a binary tree node.# class TreeN...
2019-05-11 10:32:13
1240
原创 在二叉树中分配硬币(python)
题目描述:给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。返回使每个结点上只有一枚硬币所需的移动次数。示例1: 输入:[3,0,0]...
2019-05-10 19:43:12
447
原创 二叉搜索树中的插入操作(python)
题目描述:给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如, 你可以返回这个二叉搜索树: 或者这个树也是有效的: # De...
2019-05-10 16:22:53
663
原创 所有可能的满二叉树(python)
题目描述:满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。答案中每个树的每个结点都必须有 node.val=0。你可以按任何顺序返回树的最终列表。示例:输入:7输出:[[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,nul...
2019-05-10 15:44:36
474
原创 用队列实现栈(python)
题目描述:使用队列实现栈的下列操作:push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。 你所使用的语言也许不支持队列。你可...
2019-05-09 22:08:29
372
原创 方阵的顺时针旋转(python)
题目描述:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵旋转举例:(如下四个三阶方阵从左到右为数字围绕中心顺时针旋转)1 2 3 7 4 1 9 8 7 3 6 94 5 6 8 5 2 ...
2019-05-08 21:04:20
3385
原创 根据字符出现频率排序(python)
题目描述:给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例1: 输入:“tree” 输出:“eert” 解释:‘e’出现两次,‘r’和‘t’都只出现一次。因此‘e’必须出现在‘r’和‘t’之前。此外,‘eetr’也是一个有效的答案。示例2: 输入:“cccaaa” 输出:“cccaa...
2019-05-07 09:30:36
4144
原创 检查替换后的词是否有效(python)
题目描述:给定有效字符串"abc"。对于任何有效的字符串V,我们可以将V分成两个部分X和Y,使得X + Y(X与Y连接)等于V。(X或Y可以为空。)那么,X + "abc" + Y也同样是有效的。例如,如果S = "abc",则有效字符串的示例是:"abc","aabcbc","abcabc","abcabcababcc"。无效字符串的示例是:"abc...
2019-05-06 20:50:46
282
原创 括号的分数(python)
题目描述:给定一个平衡括号字符串S,按下述规则计算该字符串的分数:()得 1 分。 AB得A + B分,其中 A 和 B 是平衡括号字符串。 (A)得2 * A分,其中 A 是平衡括号字符串。示例1: 输入:“()” 输出:1示例2: 输入:“(())” 输出:2示例3: ...
2019-05-06 20:34:37
420
1
原创 括号生成(python)
题目思路:给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n=3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]class Solution(object): def generateParen...
2019-05-06 13:39:42
735
原创 二叉搜索树迭代器(python)
题目描述:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用next()将返回二叉搜索树中的下一个最小的数。示例: 提示:next()和hasNext()操作的时间复杂度是O(1),并使用O(h) 内存,其中h是树的高度。 你可以假设next()调用总是有效的,也就是说,当调用next()时,BST 中至少存在一...
2019-05-06 13:14:36
438
原创 使括号有效的最少添加(python)
题目描述:给定一个由'('和')'括号组成的字符串S,我们需要添加最少的括号('('或是')',可以在任何位置),以使得到的括号字符串有效。从形式上讲,只有满足下面几点之一,括号字符串才是有效的:它是一个空字符串,或者 它可以被写成AB(A与B连接), 其中A和B都是有效字符串,或者 它可以被写作(A),其中A是有效字符串。给定一个括号字符...
2019-05-06 12:54:36
918
原创 删除最外层的括号(python)
题目描述:有效括号字符串为空("")、"(" + A + ")"或A + B,其中A和B都是有效的括号字符串,+代表字符串的连接。例如,"","()","(())()"和"(()(()))"都是有效的括号字符串。如果有效字符串S非空,且不存在将其拆分为S = A+B的方法,我们称其为原语(primitive),其中A和B都是非空有效括号字符串。给出一...
2019-05-06 12:43:12
3477
原创 先序遍历构造二叉树(python)
题目描述:返回与给定先序遍历preorder相匹配的二叉搜索树(binarysearchtree)的根结点。(回想一下,二叉搜索树是二叉树的一种,其每个节点都满足以下规则,对于node.left的任何后代,值总<node.val,而node.right的任何后代,值总>node.val。此外,先序遍历首先显示节点的值,然后遍历node.left,接着遍...
2019-05-05 16:52:11
1826
原创 二叉搜索树中的众数(python)
题目描述:给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。假定 BST 有如下定义:结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树例如:给定BST [1,null,2,2] 返回[2]提示:如果众数超过1个,不需考虑输出顺序# Definition f...
2019-05-05 11:05:28
481
原创 二叉树的堂兄弟节点(python)
题目描述:在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点。我们给出了具有唯一值的二叉树的根节点 root,以及树中两个不同节点的值 x 和 y。只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true。否则,返回 false。示例1:示例2:示例3...
2019-04-30 12:11:53
794
原创 路径总和III(python)
题目描述:给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。示例:菜鸟一枚,代码仅供参考,如有问题,望指正~...
2019-04-30 11:40:37
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人