LeetCode
论程序员的自我修养
A real carpenter
展开
-
LeetCode刷题(python)—— 182. 查找重复的电子邮箱
题目描述:编写一个 SQL 查询,查找Person表中所有重复的电子邮箱。示例:+----+---------+| Id | Email |+----+---------+| 1 | [email protected] || 2 | [email protected] || 3 | [email protected] |+----+---------+根据以上输入,你的查询应返回以下结果:+-------...原创 2019-06-25 22:41:57 · 506 阅读 · 0 评论 -
LeetCode刷题(python)——066.加一
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示...原创 2019-03-18 21:34:35 · 6760 阅读 · 0 评论 -
LeetCode刷题(python)——190. 颠倒二进制位
题目描述:颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制...原创 2019-03-18 21:09:22 · 6790 阅读 · 0 评论 -
LeetCode刷题(python)——476. 数字的补数
题目描述:给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。 你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数为0。所以你...原创 2019-03-13 13:05:46 · 6810 阅读 · 0 评论 -
LeetCode刷题(python)——461. 汉明距离
题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数x和y,计算它们之间的汉明距离。注意:0 ≤x,y< 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。解题思路:...原创 2019-03-13 09:16:50 · 7013 阅读 · 0 评论 -
LeetCode刷题(python)——020. 有效的括号
题目描述:给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出:...原创 2019-03-17 09:28:39 · 6892 阅读 · 0 评论 -
LeetCode刷题(python)——027. 移除元素
题目描述:给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 n...原创 2019-03-16 22:31:30 · 6833 阅读 · 0 评论 -
LeetCode刷题(python)——007.整数反转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就...原创 2019-03-16 20:51:27 · 6914 阅读 · 0 评论 -
LeetCode刷题(python)——067. 二进制求和
题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"解题思路:#方法一:先将二进制字符串化为等长度,对应两位相加,用一个新的字符串统计结果即可,注意使用进.原创 2019-03-15 17:50:13 · 6844 阅读 · 0 评论 -
LeetCode刷题(MySQL)——595. 大的国家
题目描述:这里有张World表+-----------------+------------+------------+--------------+---------------+| name | continent | area | population | gdp |+-----------------+-----...原创 2019-03-18 22:33:58 · 7622 阅读 · 0 评论 -
LeetCode刷题(python)——575. 分糖果
题目描述:给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获...原创 2019-03-22 22:57:10 · 7145 阅读 · 0 评论 -
LeetCode刷题(python)——561. 数组拆分 I
题目描述:给定长度为2n的数组, 你的任务是将这些数分成n对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n是正整数,范围在 ...原创 2019-03-22 23:24:59 · 6998 阅读 · 0 评论 -
LeetCode刷题(python)——627. 交换工资
题目描述:给定一个salary表,如下所示,有 m = 男性 和 f = 女性 的值。交换所有的 f 和 m 值(例如,将所有 f 值更改为 m,反之亦然)。要求只使用一个更新(Update)语句,并且没有中间的临时表。注意,您必只能写一个 Update 语句,请不要编写任何 Select 语句。例如:| id | name | sex | salary ||----|--...原创 2019-06-25 20:30:03 · 638 阅读 · 0 评论 -
LeetCode刷题(python)——905. 按奇偶排序数组
题目描述:给定一个非负整数数组A,返回一个由A的所有偶数元素组成的数组,后面跟A的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。解题思路:方法一:这个方法比较不好理解,如果不明白可以看方法二。 ...原创 2019-03-27 19:48:28 · 4727 阅读 · 0 评论 -
LeetCode刷题(python)——896. 单调数列
题目描述:如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有i <= j,A[i] <= A[j],那么数组A是单调递增的。 如果对于所有i <= j,A[i]> = A[j],那么数组A是单调递减的。当给定的数组A是单调数组时返回true,否则返回false。示例 1:输入:[1,2,2,3]输出:true...原创 2019-04-04 19:47:52 · 386 阅读 · 0 评论 -
LeetCode刷题(python)——796. 旋转字符串
题目描述:给定两个字符串,A和B。A的旋转操作就是将A最左边的字符移动到最右边。例如, 若A = 'abcde',在移动一次之后结果就是'bcdea'。如果在若干次旋转操作之后,A能变成B,那么返回True。示例 1:输入: A = 'abcde', B = 'cdeab'输出: true示例 2:输入: A = 'abcde', B = 'abced'...原创 2019-03-23 21:35:21 · 7039 阅读 · 0 评论 -
LeetCode刷题(python)——806. 写字符串需要的行数
题目描述:我们要把给定的字符串S从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组widths,这个数组widths[0] 代表 'a' 需要的单位,widths[1] 代表 'b' 需要的单位,...,widths[25] 代表 'z' 需要的单位。现在回答两个问...原创 2019-03-23 21:20:56 · 6779 阅读 · 0 评论 -
LeetCode刷题(python)—— 844. 比较含退格的字符串
题目描述:给定S和T两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。#代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 ...原创 2019-04-04 15:08:59 · 321 阅读 · 0 评论 -
LeetCode刷题(python)——860. 柠檬水找零
题目描述:在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付5美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回true,否则返回false。示例 ...原创 2019-04-04 05:05:58 · 853 阅读 · 0 评论 -
LeetCode刷题(python)——884. 两句话中的不常见单词
题目描述:给定两个句子A和B。(句子是一串由空格分隔的单词。每个单词仅由小写字母组成。)如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的。返回所有不常用单词的列表。您可以按任何顺序返回列表。示例 1:输入:A = "this apple is sweet", B = "this apple is sour"输出:...原创 2019-04-04 00:29:20 · 633 阅读 · 0 评论 -
LeetCode刷题(python)—— 867. 转置矩阵
题目描述:给定一个矩阵A,返回A的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]解题思路:zip()压...原创 2019-04-04 00:15:46 · 786 阅读 · 0 评论 -
LeetCode刷题(python)——35. 搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3...原创 2019-03-15 13:33:37 · 6799 阅读 · 0 评论 -
LeetCode刷题(python)——509. 斐波那契数
题目描述:斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定N,计算F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0)...原创 2019-03-10 21:42:49 · 6994 阅读 · 0 评论 -
LeetCode刷题(python)——657. 机器人能否返回原点
题目描述:在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在(0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有R(右),L(左),U(上)和D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R”...原创 2019-03-10 21:06:53 · 6746 阅读 · 0 评论 -
LeetCode刷题(python)——独特的电子邮件
题目描述:每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。例如,在 [email protected]中, alice 是本地名称,而 leetcode.com 是域名。除了小写字母,这些电子邮件还可能包含 '.' 或 '+'。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如,"ali...原创 2019-03-02 20:18:14 · 7885 阅读 · 0 评论 -
LeetCode刷题(python)——重复 N 次的元素
题目描述:在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。返回重复了 N 次的那个元素。示例 1:输入:[1,2,3,3]输出:3示例 2:输入:[2,1,2,5,3,2]输出:2示例 3:输入:[5,1,5,2,5,3,5,4]输出:5解题思路: 先进行排序,排序之后相同元素都会并在一起,然后只需查找相邻元素是否相同...原创 2019-03-02 18:54:39 · 6913 阅读 · 0 评论 -
LeetCode刷题(python)——三角形的最大周长
题目描述:给定由一些正数(代表长度)组成的数组 A,返回由其中三个长度组成的、面积不为零的三角形的最大周长。如果不能形成任何面积不为零的三角形,返回 0。示例 1:输入:[2,1,2]输出:5示例 2:输入:[1,2,1]输出:0示例 3:输入:[3,2,3,4]输出:10示例 4:输入:[3,6,2,3]输出:8解题思路: ...原创 2019-03-02 15:10:54 · 7789 阅读 · 0 评论 -
LeetCode刷题——最接近原点的 K 个点
题目描述:我们有一个由平面上的点组成的列表 points。需要从中找出 K 个距离原点 (0, 0) 最近的点。(这里,平面上两点之间的距离是欧几里德距离。)你可以按任何顺序返回答案。除了点坐标的顺序之外,答案确保是唯一的。示例 1:输入:points = [[1,3],[-2,2]], K = 1输出:[[-2,2]]解释:(1, 3) 和原点之间的距离为 sqrt(10),(...原创 2019-03-01 20:38:20 · 7498 阅读 · 0 评论 -
LeetCode刷题——有序数组的平方
题目描述:给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]解题思路: 这是一道比较简单的题目,直接遍历列表的每一项进行操作并排序即可。 或者可以使用map函...原创 2019-02-28 22:15:09 · 6882 阅读 · 0 评论 -
LeetCode刷题——查询后的偶数和
题目描述:给出一个整数数组 A 和一个查询数组 queries。对于第 i 次查询,有 val = queries[i][0], index = queries[i][1],我们会把 val 加到 A[index] 上。然后,第 i 次查询的答案是 A 中偶数值的和。(此处给定的 index = queries[i][1] 是从 0 开始的索引,每次查询都会永久修改数组 A。)...原创 2019-02-28 21:59:22 · 6911 阅读 · 0 评论 -
LeetCode刷题——实现 strStr() 函数
题目描述: 给定一个 haystack 字符串和一个 needle 字符串, 在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "ll...原创 2019-02-24 18:52:38 · 6778 阅读 · 0 评论 -
LeetCode刷题——车的可用捕获量
题目描述: 在一个 8 x 8 的棋盘上,有一个白色车(rook)。 也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。 它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。 车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南), ...原创 2019-02-27 21:22:50 · 6882 阅读 · 2 评论 -
LeetCode刷题——回文数
题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 ...原创 2019-02-23 11:53:23 · 6771 阅读 · 0 评论 -
LeetCode刷题(python)——908.最小差值
题目描述:给定一个整数数组A,对于每个整数A[i],我们可以选择任意x满足-K <= x <= K,并将x加到A[i]中。在此过程之后,我们得到一些数组B。返回B的最大值和B的最小值之间可能存在的最小差值。示例 1:输入:A = [1], K = 0输出:0解释:B = [1]示例 2:输入:A = [0,1...原创 2019-03-03 18:31:39 · 7199 阅读 · 0 评论 -
LeetCode刷题(python)——868.二进制间距
题目描述:给定一个正整数N,找到并返回N的二进制表示中两个连续的 1 之间的最长距离。如果没有两个连续的 1,返回0。示例 1:输入:22输出:2解释:22 的二进制是 0b10110 。在 22 的二进制表示中,有三个 1,组成两对连续的 1 。第一对连续的 1 中,两个 1 之间的距离为 2 。第二对连续的 1 中,两个 1 之间的距离为 1 。...原创 2019-03-03 20:47:27 · 6924 阅读 · 0 评论 -
LeetCode刷题(python)——832. 翻转图像
题目描述:给定一个二进制矩阵A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转[1, 1, 0]的结果是[0, 1, 1]。反转图片的意思是图片中的0全部被1替换,1全部被0替换。例如,反转[0, 1, 1]的结果是[1, 0, 0]。示例 1:输入: [[1,1,0],[1,0,1...原创 2019-03-04 09:17:00 · 6892 阅读 · 0 评论 -
LeetCode刷题(python)——171. Excel表列序号
题目描述:给定一个Excel表格中的列名称,返回其相应的列序号。例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...示例 1:输入: "A"输出: 1示例2:输入: "AB"输出: 28...原创 2019-03-14 21:43:36 · 6777 阅读 · 0 评论 -
LeetCode刷题(python)——292. Nim游戏
题目描述:你和你的朋友,两个人一起玩Nim游戏:桌子上有一堆石头,每次你们轮流拿掉1 - 3 块石头。拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2...原创 2019-03-14 21:09:21 · 7181 阅读 · 0 评论 -
LeetCode刷题(python)——344. 反转字符串
题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","原创 2019-03-14 19:45:59 · 7414 阅读 · 0 评论 -
LeetCode刷题(python)——557. 反转字符串中的单词 III
题目描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。解题思路:将字符串以空格为分界分开,得到一个列表。 ...原创 2019-03-14 19:26:40 · 7033 阅读 · 0 评论