LeetCode在线编程
热爱艺术的程序员
github:https://github.com/AndrewLauGithub
展开
-
LeetCode 38 Count and Say外观数列
题目描述: 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1被读作"one 1"("一个一") , 即11。 11 被读作"two 1s"("两个一"), 即21。 21 被读作"one 2", "one 1"("一个二","一个一"), 即1211。 给定一个正整数 n(1 ≤n≤ 30),输出外观数列的第...原创 2020-05-28 21:34:36 · 213 阅读 · 0 评论 -
LeetCode 922 按奇偶排序数组II
题目描述: 给定一个非负整数数组A, A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当A[i]为奇数时,i也是奇数;当A[i]为偶数时,i也是偶数。 你可以返回任何满足上述条件的数组作为答案。 示例: 输入:[4,2,5,7] 输出:[4,5,2,7] 解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。 提示: ...原创 2019-03-22 17:16:18 · 141 阅读 · 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,即为...原创 2019-04-26 07:26:31 · 112 阅读 · 0 评论 -
LeetCode 7 整数翻转
题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就...原创 2019-04-26 07:37:46 · 83 阅读 · 0 评论 -
LeetCode 9 回文数
题目描述: 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此...原创 2019-04-26 07:45:59 · 140 阅读 · 0 评论 -
LeetCode 14 最长公共前缀
题目描述: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例1: 输入: ["flower","flow","flight"] 输出: "fl" 示例2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母a-z。 解题思路: 首先,新建...原创 2019-05-30 22:26:06 · 138 阅读 · 0 评论 -
LeetCode 20 有效的括号
题目描述: 给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例2: 输入: "()[]{}" 输出: true 示例3: 输入: "(]" 输出:...原创 2019-05-30 22:43:47 · 107 阅读 · 0 评论 -
LeetCode 21 合并两个有序的链表
题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 相关话题:链表 相似题目: 合并K个排序链表 合并两个有序数组 排序链表 最短单词距离 II 解题思路: 如果L1链表为空,返...原创 2019-05-30 23:10:14 · 117 阅读 · 0 评论 -
LeetCode 53 最大自序和
题目描述: 给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释:连续子数组[4,-1,2,1] 的和最大,为6。 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 解题思路:经典的动态规划问题,分治问题。 ...原创 2019-06-03 19:37:13 · 119 阅读 · 0 评论 -
LeetCode 1051 高度检查器
题目描述: 学校在拍年度纪念照时,一般要求学生按照非递减的高度顺序排列。 请你返回至少有多少个学生没有站在正确位置数量。该人数指的是:能让所有学生以非递减高度排列的必要移动人数。 示例: 输入:[1,1,4,2,1,3] 输出:3 解释: 高度为 4、3 和最后一个 1 的学生,没有站在正确的位置。 提示: 1 <= heights.length <=...原创 2019-06-04 19:18:00 · 344 阅读 · 0 评论 -
LeetCode 999 车的可用捕获量
题目描述: 在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。 车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相反的卒。另...原创 2019-06-05 08:04:04 · 126 阅读 · 0 评论 -
LeetCode 977 有序数组的平方
题目描述: 给定一个按非递减顺序排序的整数数组A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10] 输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11] 输出:[4,9,9,49,121] 提示: 1 <= A.length <= 10000 -10000 <...原创 2019-03-18 17:00:41 · 142 阅读 · 0 评论 -
LeetCode 905 按奇偶排序数组
题目描述: 给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。 提示: 1 <= A.length <= 5000 0 <= ...原创 2018-12-09 11:22:06 · 171 阅读 · 0 评论 -
LeetCode 118 杨辉三角(帕斯卡三角)
题目描述:(卤煮太懒,直接贴图了) 相关话题:数组 相似题目:119.杨辉三角II 解题思路: 创建一个二维向量, 对二维向量的第0列和对角线上的元素初始化为1(将二维向量按照矩阵的形式写出来即可看到对角线上的元素),设置每一行上元素的个数(ivvec[i].resize(i + 1 );)。. 从第二行开始,除1以外的每个元素都是上面两肩元素之和(ivvec[i][j] = i...原创 2018-12-08 17:56:19 · 184 阅读 · 0 评论 -
LeetCode 283 移动零
题目描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 相关话题:数组;双指针 相似题目:27.移动元素 解题思路: 设置两个指针,一个指向当前节点,一个指向最后一个节点; 当前节点指...原创 2018-12-08 19:08:58 · 103 阅读 · 0 评论 -
LeetCode 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 是正整数,范围在 [1...原创 2018-12-08 19:36:19 · 235 阅读 · 2 评论 -
LeetCode 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...原创 2018-12-08 19:56:50 · 165 阅读 · 0 评论 -
LeetCode 1 两数之和
题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]...原创 2018-12-12 23:02:50 · 77 阅读 · 0 评论 -
LeetCode 771 宝石与石头
题目描述: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。 示例 1: 输入: J = "aA", S = "aAAbbbb" 输出: 3 示例 2: 输入: J = "z...原创 2018-12-12 23:33:03 · 178 阅读 · 0 评论 -
LeetCode 709 转换成小写字母
题目描述: 实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。 示例 1: 输入: "Hello" 输出: "hello" 示例 2: 输入: "here" 输出: "here" 示例 3: 输入: "LOVELY" 输出: "lovely" 相关话题:字符串 解题思路: 遍历字符原创 2018-12-13 15:12:41 · 133 阅读 · 0 评论 -
LeetCode 344 反转字符串
题目描述: 编写一个函数,其作用是将输入的字符串反转过来。 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A" 相关话题:双指针;字符串。 相似题目:345 反转字符串中的元音字母;541 反转字符串II 解题...原创 2018-12-13 15:49:21 · 159 阅读 · 0 评论 -
LeetCode 412 FizzBuzz
题目描述: 写一个程序,输出从 1 到 n 数字的字符串表示。 1. 如果 n 是3的倍数,输出“Fizz”; 2. 如果 n 是5的倍数,输出“Buzz”; 3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。 示例: n = 15, 返回: [ "1", "2", "Fizz", "4", "Buzz", "Fizz&q原创 2018-12-13 20:40:57 · 272 阅读 · 0 评论 -
LeetCode 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]] 提示: 1 <= A.l...原创 2018-12-09 10:43:15 · 116 阅读 · 0 评论 -
LeetCode 27 移除元素
题目描述: 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 n...原创 2018-12-08 17:31:46 · 112 阅读 · 0 评论