Leetcode_Python
leetcode
-JiangZD
计算机小白
展开
-
Leetcode- 888. 公平的糖果交换
爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i块糖的大小,B[j] 是鲍勃拥有的第 j块糖的大小。 因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。) 返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1]是 Bob 必须交换的糖果棒的大小。 如果有多个...原创 2020-01-17 19:27:25 · 153 阅读 · 0 评论 -
Leetcode- 661. 图片平滑器
包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度(向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果周围的单元格不足八个,则尽可能多的利用它们。 示例 1: 输入: [[1,1,1], [1,0,1], [1,1,1]] 输出: [[0, 0, 0], [0, 0, 0], [0, 0, 0]] 解释: 对于点 (0,...原创 2020-01-16 19:00:23 · 138 阅读 · 0 评论 -
Leetcode- 1170. 比较字符串最小字母出现频次
我们来定义一个函数f(s),其中传入参数s是一个非空字符串;该函数的功能是统计s 中(按字典序比较)最小字母的出现频次。 例如,若s = "dcce",那么f(s) = 2,因为最小的字母是"c",它出现了2 次。 现在,给你两个字符串数组待查表queries和词汇表words,请你返回一个整数数组answer作为答案,其中每个answer[i]是满足f(qu...原创 2020-01-12 14:36:07 · 119 阅读 · 0 评论 -
Leetcode- 1002. 查找常用字符
给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。 你可以按任意顺序返回答案。 示例 1: 输入:["bella","label","roller"] 输出:["e","l","l"] 示例 2: 输入:["cool","lock","...原创 2020-01-08 21:05:52 · 95 阅读 · 0 评论 -
Leetcode- 589. N叉树的前序遍历
给定一个 N 叉树,返回其节点值的前序遍历。 例如,给定一个3叉树: 返回其前序遍历: [1,3,5,6,2,4]。 说明:递归法很简单,你可以使用迭代法完成此题吗? 迭代法: """ # Definition for a Node. class Node: def __init__(self, val=None, children=None): ...原创 2020-01-08 20:56:09 · 87 阅读 · 0 评论 -
Leetcode- 1299. 将每个元素替换为右侧最大元素
给你一个数组arr,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用-1 替换。 完成所有替换操作后,请你返回这个数组。 示例: 输入:arr = [17,18,5,4,6,1] 输出:[18,6,6,6,1,-1] 思路:右边最大的元素,考虑从最后的元素开始替换,设置max,max比当前元素小时,将max设置为当前元素 class Solution: ...原创 2020-01-05 21:00:02 · 143 阅读 · 0 评论 -
Leetcode- 1295. 统计位数为偶数的数字
给你一个整数数组nums,请你返回其中位数为偶数的数字的个数。 示例 1: 输入:nums = [12,345,2,6,7896] 输出:2 解释: 12 是 2 位数字(位数为偶数) 345 是 3 位数字(位数为奇数) 2 是 1 位数字(位数为奇数) 6 是 1 位数字 位数为奇数) 7896 是 4 位数字(位数为偶数) 因此只有 12 和 7896 是位数为偶数的...原创 2019-12-31 20:30:03 · 337 阅读 · 0 评论 -
Leetcode- 1221. 分割平衡字符串
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。 给出一个平衡字符串s,请你将它分割成尽可能多的平衡字符串。 返回可以通过分割得到的平衡字符串的最大数量。 示例 1: 输入:s = "RLRRLLRLRL" 输出:4 解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。 示例 2: 输入:s...原创 2020-01-04 18:31:31 · 80 阅读 · 0 评论 -
Leetcode- 118. 杨辉三角
给定一个非负整数numRows,生成杨辉三角的前numRows行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] code: class Solution: def generate(self, numRows...原创 2019-04-08 13:02:33 · 155 阅读 · 0 评论 -
Leetcode- 682. 棒球比赛
你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数。 2."+"(一轮的得分):表示本轮获得的得分是前两轮有效回合得分的总和。 3."D"(一轮的得分):表示本轮获得的得分是前一轮有效回合得分的两倍。 4."C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效回合的分数是无效的,应该被移除...原创 2019-04-04 21:34:30 · 135 阅读 · 0 评论 -
Leetcode- 811. 子域名访问计数
一个网站域名,如"discuss.leetcode.com",包含了多个子域名。作为顶级域名,常用的有"com",下一级则有"leetcode.com",最低的一级为"discuss.leetcode.com"。当我们访问域名"discuss.leetcode.com"时,也同时访问了其父域名"leetcode.com"以及顶级域名"com"。 给定一个带访问次数和域名的组合,要求分别计算每个...原创 2019-04-03 11:23:03 · 110 阅读 · 0 评论 -
Leetcode- 108. 将有序数组转换为二叉搜索树
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -1...原创 2019-04-02 21:39:52 · 336 阅读 · 0 评论 -
Leetcode- 821. 字符的最短距离
给定一个字符串S和一个字符C。返回一个代表字符串S中每个字符到字符串S中的字符C的最短距离的数组。 示例 1: 输入: S = "loveleetcode", C = 'e' 输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0] 说明: 字符串S的长度范围为[1, 10000]。 C是一个单字符,且保证是字符串S里的字符。 ...原创 2019-04-01 15:13:00 · 155 阅读 · 0 评论 -
Leetcode- 965. 单值二叉树
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时,才返回true;否则返回false。 示例 1: 输入:[1,1,1,1,1,null,1] 输出:true 示例 2: 输入:[2,2,2,5,2] 输出:false 提示: 给定树的节点数范围是[1, 100]。 每个节点的值都是整数,范围为[0, 99]...原创 2019-04-01 14:10:55 · 125 阅读 · 0 评论 -
Leetcode- 700. 二叉搜索树中的搜索
给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 ...原创 2019-04-01 13:04:57 · 97 阅读 · 0 评论 -
Leetcode- 559. N叉树的最大深度
给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 例如,给定一个 3叉树 : 我们应返回其最大深度,3。 说明: 树的深度不会超过 1000。 树的节点总不会超过 5000。 code: """ # Definition for a Node. class Node: def __init__(self, val, chi...原创 2019-03-31 16:12:26 · 92 阅读 · 0 评论 -
Leetcode- 13. 罗马数字转整数
罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1...原创 2019-03-31 15:32:54 · 107 阅读 · 0 评论 -
Leetcode- 345. 反转字符串中的元音字母
编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle" 示例 2: 输入: "leetcode" 输出: "leotcede" 说明: 元音字母不包含字母"y"。 思路: 使用两个指针进行判断,前指针与后指针重合时结束判断。 code: class Solution: def reverseVowel...原创 2019-03-31 13:58:38 · 97 阅读 · 0 评论 -
Leetcode- 590. N叉树的后序遍历
给定一个 N 叉树,返回其节点值的后序遍历。 例如,给定一个3叉树: 返回其后序遍历:[5,6,3,2,4,1]. code: """ # Definition for a Node. class Node: def __init__(self, val, children): self.val = val self.children...原创 2019-03-24 22:33:15 · 126 阅读 · 0 评论 -
Leetcode- 500. 键盘行
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 示例1: 输入: ["Hello", "Alaska", "Dad", "Peace"] 输出: ["Alaska", "Dad"] 注意: 你可以重复使用键盘上同一字符。 你可以假设输入的字符串将只包含字母。 思路: 1.建立和键盘对应的三个list和一个返回List原创 2018-09-02 12:37:16 · 138 阅读 · 0 评论 -
Leetcode- 26. 删除排序数组中的重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 示例 2:...原创 2018-08-30 22:10:12 · 69 阅读 · 0 评论 -
Leetcode- 461. 汉明距离
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。 思路:将两个数转化为bin...原创 2018-08-30 21:56:36 · 109 阅读 · 0 评论 -
Leetcode- 804. 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: "a" 对应 ".-", "b" 对应 "-...", "c" 对应 "-.-.", 等等。 为了方便,所有26个英文字母对应摩尔斯密码表如下: [".-","-...","-.-.","-..","原创 2018-08-30 21:48:55 · 400 阅读 · 0 评论 -
Leetcode- 226. 翻转二叉树
翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 思路:每次递归,交换当前结点的左右子结点(包括了子子子...结点的同时交换)得到输出 code: # Definition for a bin...原创 2018-08-30 21:31:09 · 94 阅读 · 0 评论 -
Leetcode- 226. 翻转二叉树(变形)
翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 ps:自己思考将其变形,不让其每次交换所有的左右结点,而是只交换当前的左右结点 输出: 4 / \ 7 2 ...原创 2018-08-30 21:24:21 · 128 阅读 · 0 评论 -
Leetcode- 617. 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 输入: Tree 1 Tree 2 ...原创 2018-08-30 21:04:23 · 98 阅读 · 0 评论