LeetCode
文章平均质量分 51
ME不想家
这个作者很懒,什么都没留下…
展开
-
【LeetCode】1. 两数之和
题目:https://leetcode-cn.com/problems/two-sum/方法一:暴力枚举题目要求找到这两个数,最容易想到的方法就是 两重循环。/** * 方法一:暴力枚举 * * @param nums 数组 * @param target 目标值 * @return 和为目标值的那两个整数的数组下标;若没有符合要求的,则返回 null */public int[] twoSum(int[] nums, int target) { int len = num原创 2021-03-23 21:13:38 · 174 阅读 · 0 评论 -
【LeetCode】912. 排序数组
题目链接:912. 排序数组题目描述:给你一个整数数组 nums,将该数组升序排列。示例:输入:nums = [5,2,3,1]输出:[1,2,3,5]输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000思...原创 2020-03-31 11:09:21 · 208 阅读 · 0 评论 -
【LeetCode】999. 车的可用捕获量
题目链接:999. 车的可用捕获量题目描述:在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一...原创 2020-03-26 10:52:08 · 222 阅读 · 0 评论 -
【LeetCode】876. 链表的中间结点
题目链接:876. 链表的中间结点题目描述:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。给定链表的结点数介于 1 和 100 之间。示例:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。(测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ...原创 2020-03-23 10:30:17 · 164 阅读 · 0 评论 -
【LeetCode】365. 水壶问题
题目链接:365. 水壶问题题目描述:有两个容量分别为 x 升和 y 升的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z 升的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z 升水。你允许:装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水,直到装满或者倒空示例:示例 1:输入:x = 3, y = 5, z = 4输出:t...原创 2020-03-21 11:37:37 · 302 阅读 · 0 评论 -
【LeetCode】409. 最长回文串
题目链接:409. 最长回文串题目描述:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd",它的长度是 7。思路:回文串左右是对称的,每...原创 2020-03-19 11:17:59 · 283 阅读 · 0 评论 -
【LeetCode】836. 矩形重叠
题目链接:836. 矩形重叠题目描述:矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例:示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3...原创 2020-03-18 10:03:24 · 224 阅读 · 0 评论 -
【LeetCode】1160. 拼写单词
题目链接:1160. 拼写单词题目描述:给你一份『词汇表』(字符串数组)words 和一张『字母表』(字符串)chars。假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表 words 中你掌握的所有单词的 长度之和。示例:示例 1:输入...原创 2020-03-17 10:43:35 · 149 阅读 · 0 评论 -
【LeetCode】695. 岛屿的最大面积
题目链接:169. 多数元素题目描述:给定一个包含了一些 0 和 1 的非空二维数组 grid, 一个岛屿是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)注意:给定的矩阵 grid 的长度和宽度都不超过 50。示例:示例 1:[[0,0,1,0,0,0,...原创 2020-03-15 10:42:59 · 159 阅读 · 0 评论 -
【LeetCode】169. 多数元素
题目链接:169. 多数元素题目描述:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例:示例 1:输出:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2思路:方法一:排序如果数组中有一个数字出现的次数大于 n / 2,...原创 2020-03-13 10:58:05 · 166 阅读 · 0 评论 -
【LeetCode】1071. 字符串的最大公因子
题目链接:1071. 字符串的最大公因子题目描述:对于字符串 S 和 T,只有在 S = T + ... + T(T 与自身连接 1 次或多次)时,我们才认定“T 能除尽 S”。返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。1 <= str1.length <= 10001 <= str2.length <= 1000str1...原创 2020-03-12 12:02:30 · 237 阅读 · 0 评论 -
【LeetCode】1013. 将数组分成和相等的三个部分
题目链接: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...原创 2020-03-11 11:13:01 · 291 阅读 · 0 评论 -
【LeetCode】543. 二叉树的直径
题目链接:543. 二叉树的直径题目描述:给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。注意:两结点之间的路径长度是以它们之间边的数目表示。示例:给定二叉树: 1 / \ 2 3 / \ 4 5 返回 3, 它的长度...原创 2020-03-10 11:56:03 · 203 阅读 · 0 评论 -
【LeetCode】121. 买卖股票的最佳时机
题目链接:121. 买卖股票的最佳时机题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例:示例 1:输入:[7,1,5,3,6,4]输出:5解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的...原创 2020-03-09 12:20:44 · 109 阅读 · 0 评论 -
【LeetCode】面试题59 - II. 队列的最大值
题目链接:面试题59 - II. 队列的最大值题目描述:请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数 max_value、push_back 和 pop_front 的时间复杂度都是 O(1)。若队列为空,pop_front 和 max_value 需要返回 -1。示例:示例 1:输入:["MaxQueue","push_back","push_ba...原创 2020-03-07 12:20:10 · 242 阅读 · 0 评论 -
【LeetCode】面试题57 - II. 和为s的连续正数序列
题目链接:面试题57 - II. 和为s的连续正数序列题目描述:输入一个正整数 target,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。(1 <= target <= 10^5)示例:示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target...原创 2020-03-06 17:04:42 · 249 阅读 · 0 评论 -
【LeetCode】232. 用栈实现队列
题目链接:232. 用栈实现队列面试题09. 用两个栈实现队列这两个题目基本上是一样的,这里以232号题目为例。题目描述:使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue(); ...原创 2020-02-21 11:28:09 · 245 阅读 · 0 评论 -
【LeetCode】27. 移除元素
题目链接:27. 移除元素题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3],val = 3,函数应该返回新的长度 ...原创 2020-01-27 19:02:46 · 136 阅读 · 0 评论 -
【LeetCode】1323. 6 和 9 组成的最大数字
这是第 172 场周赛的第一题,很简单题目链接:1323. 6 和 9 组成的最大数字题目描述:给你一个仅由数字6和9组成的正整数num。你最多只能翻转一位数字,将6变成9,或者把9变成6。请返回你可以得到的最大数字。示例 1:输入:num = 9669输出:9969解释: 改变第一位数字可以得到 6669 。改变第二位数字可以得到 9969 。改变第三位数字可以得到 96...原创 2020-01-23 20:07:36 · 301 阅读 · 0 评论 -
【LeetCode】167. 两数之和 II - 输入有序数组
题目链接:167. 两数之和 II - 输入有序数组题目描述:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入...原创 2020-01-19 21:10:44 · 151 阅读 · 0 评论 -
【LeetCode】155. Min Stack 最小栈
题目链接:155. Min Stack 最小栈解题思路:使用两个栈来实现本题要求,一个栈用于保存所有元素,这个栈与普通栈没有区别,记为stackData;另一个栈用于保存每一步的最小值,记为stackMin。push(x)操作 - 将元素 x 推入栈中。当前元素记为newNum,压入stackData。然后判断stackMin是否为空:若stackMin为空,也入栈;若stack...原创 2020-01-11 11:05:19 · 207 阅读 · 0 评论 -
【LeetCode】169.Majority Element
题目:给定一个大小为n的数组,找出其中的majority element。majority element是指在数组中出现超过n/2次的元素。例1:输入:[3,2,3]输出:3例2:输入:[2,2,1,1,1,2,2]输出:2思路:利用栈来求解。分3种情况:栈为空,入栈; 栈顶元素等于当前元素,入栈; 否则,出栈。最后栈中剩下的元素即是所求。...原创 2019-01-14 13:42:31 · 164 阅读 · 0 评论 -
【LeetCode】231. Power of Two
题目:给定一个整数,判断它是不是2的次幂。Example 1:Input: 1Output: true Explanation: 2^0=1Example 2:Input: 16Output: trueExplanation: 2^4=16Example 3:Input: 218Output: false思路:,,,,......这些...原创 2019-01-19 23:05:30 · 151 阅读 · 0 评论 -
【LeetCode】268.Missing Number
题目:给定一个包含n个数字的数组0, 1, 2, ... n,找出数组中缺少的数字。例1:输入: [3,0,1] 输出: 2例2:输入: [9,6,4,2,3,5,7,0,1] 输出: 8思路:设置一个从0到n的完整对应布尔数组,先将其全部置为false。遍历给定数组,每读取一个数字,将布尔数组对应位置置为true。最后遍历布尔数组,为fals...原创 2019-01-14 22:05:58 · 138 阅读 · 0 评论 -
【LeetCode】191. Number of 1 Bits
题目:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。思路:从输入数字二进制的最后一位开始,判断是否为1。位运算。A & 0 = 0, A & 1 = A。每次与1进行&运算(即最后一位),若结果为1,计数加1,否则计数不变,然后将二进制数字右移一位。如此循环。#include <s...原创 2019-01-20 22:52:06 · 177 阅读 · 0 评论 -
【LeetCode】136. Single Number
题目: 给定一个非空整数数组,除其中一个元素外,每个元素都出现了两次,找出那个只出现了一次的元素。例1:输入: [2,2,1] 输出: 1例2:输入: [4,1,2,1,2] 输出: 4思路:对数组元素进行依次统计,如果一个元素已经出现了两次,则不再关注,直到找到只出现一次的元素。#include <stdio.h>//统计在...原创 2019-01-15 20:58:34 · 146 阅读 · 0 评论 -
【LeetCode】190. Reverse Bits
题目:颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进...原创 2019-01-21 21:17:24 · 138 阅读 · 0 评论 -
【LeetCode】88. Merge Sorted Array
题目:给定两个已经排序的整数数组nums1和nums2,将nums2合并到nums1中,使之成为一个有序的数组。nums1和nums2中的元素个数分别为m和n,nums1中有足够的空间来存放nums2中的元素。思路:构造一个大小为m+n的数组arr,然后开始遍历nums1(用nums1[i]表示)和nums2(用nums2[j]表示),如果nums1[i] < num...原创 2019-01-16 20:19:22 · 244 阅读 · 0 评论 -
【LeetCode】283. Move Zeroes
题目:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入:[0,1,0,3,12]输出:[1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路1:统计0元素的个数。遍历数组,并用一个变量zeroes记录0元素的个数,遇到0元素zeroes就加1,遇到非...原创 2019-01-22 22:28:24 · 148 阅读 · 0 评论 -
【LeetCode】13. Roman to Integer
题目:思路:罗马数字小的放在大的左边是减,右边是加。以 CMLIV 为例,首先找出字符串中代表数字最大的字母,将字符串分段,即:C、M、LIV。所以 CMLIV = M - C + LIV。继续拆,LIV 中 L 最大,所以 LIV = L + IV,即 CMLIV = M - C + ( L + IV )。IV 可以继续拆为 V - I,所以 CMLIV = M - ...原创 2019-01-23 22:05:17 · 242 阅读 · 0 评论