
LeetCode
leetCode
qq_45239139
这个作者很懒,什么都没留下…
展开
-
LeetCode:118.杨辉三角
题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。源码:class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer>> res = new ArrayList<>();...原创 2020-02-14 16:31:38 · 104 阅读 · 0 评论 -
LeetCode:150.逆波兰表达式求值
题目:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9示...原创 2020-02-02 14:36:05 · 113 阅读 · 0 评论 -
LeetCode:443.压缩字符串
题目:给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。进阶:你能否仅使用O(1) 空间解决问题?示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组的前6个字符应该是:["a","...原创 2020-01-31 14:24:39 · 158 阅读 · 0 评论 -
LeetCode:34.在排序数组中查找元素的第一个位置和最后一个位置
题目:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,...原创 2020-01-30 14:21:27 · 115 阅读 · 0 评论 -
LeetCode:217.存在重复元素
题目:给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true源码:class Solutio...原创 2020-01-22 17:43:32 · 147 阅读 · 0 评论 -
LeetCode:88.合并两个有序的数组
题目:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums...原创 2020-01-21 18:55:23 · 99 阅读 · 0 评论 -
LeetCode:1266.访问所有点的最小时间
题目:平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。你可以按照下面的规则在平面上移动:每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。必须按照数组中出现的顺序来访问这些点。源码:class Solution { pu...原创 2020-01-11 22:00:59 · 159 阅读 · 0 评论 -
LeetCode:1295.统计位数为偶数的数字
题目:给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数。示例 1:输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数) 345 是 3 位数字(位数为奇数) 2 是 1 位数字(位数为奇数) 6 是 1 位数字 位数为奇数) 7896 是 4 位数字(位数为偶数) 因此只有 12 和 7896 是位数...原创 2020-01-07 21:12:56 · 204 阅读 · 0 评论 -
LeetCode:1304.和为零的N个唯一整数
题目:给你一个整数 n,请你返回 任意 一个由 n 个 各不相同 的整数组成的数组,并且这 n 个数相加和为 0 。 示例 1:输入:n = 5输出:[-7,-1,1,3,4]解释:这些数组也是正确的 [-5,-1,1,2,3],[-3,-1,2,-2,4]。示例 2:输入:n = 3输出:[-1,0,1]示例 3:输入:n = 1输出:[0]源码:cla...原创 2020-01-07 20:59:43 · 165 阅读 · 0 评论 -
LeetCode:929.独特的电子邮件地址
题目:除了小写字母,这些电子邮件还可能包含 '.' 或 '+'。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如,"alice.z@leetcode.com” 和 “alicez@leetcode.com” 会转发到同一电子邮件地址。 (请注意,此规则不适用于域名。)如果在本地名称中添加加号('+'),则会忽略...原创 2020-01-07 20:39:29 · 917 阅读 · 0 评论 -
LeetCode:1260.二维网格迁移
题目:给你一个 n 行 m 列的二维网格 grid 和一个整数 k。你需要将 grid 迁移 k 次。每次「迁移」操作将会引发下述活动:位于 grid[i][j] 的元素将会移动到 grid[i][j + 1]。位于 grid[i][m - 1] 的元素将会移动到 grid[i + 1][0]。位于 grid[n - 1][m - 1] 的元素将会移动到 grid[0][0]。请你...原创 2020-01-03 19:30:22 · 182 阅读 · 0 评论 -
LeetCode:1200.最小绝对差
题目:给你个整数数组 arr,其中每个元素都 不相同。请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。 示例 1:输入:arr = [4,2,1,3]输出:[[1,2],[2,3],[3,4]]示例 2:输入:arr = [1,3,6,10,15]输出:[[1,3]]示例 3:输入:arr = [3,8,-10,23,19,-4,-14,27]输出:[...原创 2019-12-31 21:37:20 · 127 阅读 · 0 评论 -
LeetCode:1184.公交站间的距离
题目:环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。环线上的公交车都可以按顺时针和逆时针的方向行驶。返回乘客从出发点 start 到目的地 destination 之间的最短距离。源码:class Solution { ...原创 2019-12-31 20:56:39 · 183 阅读 · 0 评论 -
LeetCode:1170.比较字符串最小字母出现频次
题目:我们来定义一个函数 f(s),其中传入参数 s 是一个非空字符串;该函数的功能是统计 s 中(按字典序比较)最小字母的出现频次。例如,若 s = "dcce",那么 f(s) = 2,因为最小的字母是 "c",它出现了 2 次。现在,给你两个字符串数组待查表 queries 和词汇表 words,请你返回一个整数数组 answer 作为答案,其中每个 answer[i] 是满足 ...原创 2019-12-31 20:23:34 · 263 阅读 · 0 评论 -
LeetCode:1128.等价多米诺骨牌对的数量
题目:给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,或是 a==d 且 b==c。在 0 <= i < j < dom...原创 2019-12-31 19:47:09 · 242 阅读 · 0 评论 -
LeetCode:5134.将每个元素替换为右侧最大元素
题目:给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。完成所有替换操作后,请你返回这个数组。示例:输入:arr = [17,18,5,4,6,1]输出:[18,6,6,6,1,-1]源码:class Solution { public int[] replaceElements(int[] arr) { ...原创 2019-12-29 20:45:45 · 170 阅读 · 0 评论 -
LeetCode:1287.有序数组中出现次数超过百分之25的元素
题目:给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。请你找到并返回这个整数示例:输入:arr = [1,2,2,6,6,6,6,7,10]输出:6源码:class Solution { public int findSpecialInteger(int[] arr) { if (arr.len...原创 2019-12-29 20:44:20 · 227 阅读 · 0 评论 -
LeetCode:1051.高度检查器
题目:学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。请你返回至少有多少个学生没有站在正确位置数量。该人数指的是:能让所有学生以 非递减 高度排列的必要移动人数。示例:输入:[1,1,4,2,1,3]输出:3解释:高度为 4、3 和最后一个 1 的学生,没有站在正确的位置。源码:class Solution { public int heightCh...原创 2019-12-29 19:00:28 · 198 阅读 · 0 评论 -
LeetCode:1089.复写零
题目:给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。示例 1:输入:[1,0,2,3,0,4,5,0]输出:null解释:调用函数后,输入的数组将被修改为:[1,0,0,2,3,0,0,4]示例 2:输入:[1,...原创 2019-12-29 18:52:21 · 313 阅读 · 0 评论 -
LeetCode:1160.拼写单词
题目:给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例 1:输入:words = ["cat",...原创 2019-12-24 20:29:46 · 177 阅读 · 0 评论 -
LeetCode:1013.将数组分成和相等的三个部分
题目:给定一个整数数组 A,只有我们可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false。形式上,如果我们可以找出索引 i+1 < j 且满足 (A[0] + A[1] + ... + A[i] == A[i+1] + A[i+2] + ... + A[j-1] == A[j] + A[j-1] + ... + A[A.length - 1]) 就可以将数组三等分...原创 2019-12-24 19:28:43 · 159 阅读 · 0 评论 -
LeetCode:1010.总持续时间可被60整除的歌曲
题目:在歌曲列表中,第 i 首歌曲的持续时间为 time[i] 秒。返回其总持续时间(以秒为单位)可被 60 整除的歌曲对的数量。形式上,我们希望索引的数字 i < j 且有 (time[i] + time[j]) % 60 == 0。示例 1:输入:[30,20,150,100,40]输出:3解释:这三对的总持续时间可被 60 整数:(time[0] = 30, ti...原创 2019-12-24 18:29:13 · 146 阅读 · 0 评论 -
LeetCode:999.车的可用捕获量
题目:在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相反的卒。另外,车...原创 2019-12-24 14:40:48 · 102 阅读 · 0 评论 -
LeetCode:914.卡牌分组
题目:给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有 X 张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回 true。示例 1:输入:[1,2,3,4,4,3,2,1]输出:true解释:可行的分组是 [1,1],[2,2],[3,3],[4,4]示例 2:输...原创 2019-12-24 14:02:36 · 116 阅读 · 0 评论 -
LeetCode:888.公平的糖果交换
题目:爱丽丝和鲍勃有不同大小的糖果棒:A[i] 是爱丽丝拥有的第 i 块糖的大小,B[j] 是鲍勃拥有的第 j 块糖的大小。因为他们是朋友,所以他们想交换一个糖果棒,这样交换后,他们都有相同的糖果总量。(一个人拥有的糖果总量是他们拥有的糖果棒大小的总和。)返回一个整数数组 ans,其中 ans[0] 是爱丽丝必须交换的糖果棒的大小,ans[1] 是 Bob 必须交换的糖果棒的大小。如...原创 2019-12-21 21:40:37 · 116 阅读 · 0 评论 -
LeetCode:896.单调数列
题目:如果数组是单调递增或单调递减的,那么它是单调的。如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。当给定的数组 A 是单调数组时返回 true,否则返回 false。示例 1:输入:[1,2,2,3]输出:true示例 2:输入:...原创 2019-12-21 20:46:24 · 142 阅读 · 0 评论 -
LeetCode:849.到最近的人的最大距离
题目:在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的。至少有一个空座位,且至少有一人坐在座位上。亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。返回他到离他最近的人的最大距离。示例 1:输入:[1,0,0,0,1,0,1]输出:2解释:如果亚历克斯坐在第二个空位(seats[2])上,他到离他最近的人的距离为 2 。...原创 2019-12-21 19:55:49 · 99 阅读 · 0 评论 -
LeetCode:747.至少是其他数字两倍的最大数
题目:在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1. 示例 2:输入: nums = ...原创 2019-12-20 17:22:05 · 76 阅读 · 0 评论 -
LeetCode:830.较大分组的位置
题目:在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 S = "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。最终结果按照字典顺序输出。示例 1:输入: "abbxxxxzzy"...原创 2019-12-19 20:28:32 · 108 阅读 · 0 评论 -
LeetCode:717.1比特与2比特字符
题目:有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。示例 1:输入: bits = [1, 0, 0]输出: True解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例 2:输入: ...原创 2019-12-19 20:02:45 · 164 阅读 · 0 评论 -
LeetCode:724.寻找数组的中心索引
题目:给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 ...原创 2019-12-18 21:30:57 · 82 阅读 · 0 评论 -
LeetCode:674.最长连续递增序列
题目:给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。源码:...原创 2019-12-16 23:18:25 · 92 阅读 · 0 评论 -
LeetCode:643.最大子数组的平均数 I
题目:给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。示例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75源码:class Solution { public double findMaxAverage(int[] nums, i...原创 2019-12-13 21:27:09 · 123 阅读 · 0 评论 -
LeetCode:628.三个数的最大乘积
题目:给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24源码:class Solution { public int maximumProduct(int[] nums) { int max1 = Integer.MIN_VALUE; ...原创 2019-12-13 21:06:59 · 99 阅读 · 0 评论 -
LeetCode:532.数组中的K-diff数对
题目:给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但我们只...原创 2019-12-13 10:22:34 · 151 阅读 · 0 评论 -
LeetCode:414.第三大的数
题目:给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出: 1解释: 注意,要求返回...原创 2019-12-13 09:33:33 · 342 阅读 · 0 评论 -
LeetCode:448.找到所有数组中消失的数字
题目:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]源码:...原创 2019-12-12 16:34:50 · 169 阅读 · 0 评论 -
LeetCode:169.多数元素
题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2源码:// 第一种方法:class Solution { public int major...原创 2019-12-12 15:59:43 · 427 阅读 · 0 评论 -
LeetCode:283.移动零
题目:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]源码:class Solution { public void moveZeroes(int[] nums) { if (nums == null || nums.length <...原创 2019-12-11 14:40:07 · 95 阅读 · 0 评论 -
LeetCode:167.两数之和II
题目:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15...原创 2019-12-10 16:22:06 · 98 阅读 · 0 评论