leetcode
文章平均质量分 54
力扣刷题专栏
-兮
Holly
展开
-
leetcode: 1486. 数组异或操作
题目描述给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^" 为按位异或 XOR 运算符。示例 2:输入:n = 4, start =原创 2021-05-07 11:44:52 · 97 阅读 · 0 评论 -
leetcode:1002. 查找常用字符
题目描述给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:["bella","label","roller"]输出:["e","l","l"]示例 2:输入:["cool","lock","cook"]输出:["c","o"]提示:1 <= A.length <= 1001原创 2020-10-14 14:31:45 · 103 阅读 · 0 评论 -
leetcode:783. 二叉搜索树节点最小距离 | leetcode:530. 二叉搜索树的最小绝对差
题目描述给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。示例 1:输入:root = [4,2,6,1,3]输出:1示例 2:输入:root = [1,0,48,null,null,12,49]输出:1提示:树中节点数目在范围== [2, 100]== 内0 <= Node.val <= 105结果/** * Definition for a binary tree node. * struct TreeNode {原创 2021-04-13 11:36:20 · 128 阅读 · 0 评论 -
leetcode: 747. 至少是其他数字两倍的最大数
题目描述在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.示例 2:输入: nums = [1, 2, ...原创 2020-04-05 03:05:28 · 252 阅读 · 0 评论 -
leetcode: 724. 寻找数组的中心索引
题目描述给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入:nums = [1, 7, 3, 6, 5, 6]输出: 3解释:索引3 (nums...原创 2020-04-05 02:22:18 · 140 阅读 · 0 评论 -
leetcode: 557. 反转字符串中的单词 III
简单难度给定一个字符串s,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。sss。原创 2022-12-20 18:32:30 · 113 阅读 · 0 评论 -
leetcode: 561. 数组拆分
给定长度为2n的整数数组nums,你的任务是将这些数分成n对, 例如,使得从1到n的总和最大。返回该。原创 2022-11-23 22:02:15 · 311 阅读 · 0 评论 -
leetcode: 498. 对角线遍历 中等难度
题目描述结果class Solution {public: vector<int> findDiagonalOrder(vector<vector<int>>& matrix) { int m = matrix.size(); vector<int> res; if(!m)...原创 2020-04-05 16:29:24 · 155 阅读 · 0 评论 -
leetcode: 485. 最大连续 1 的个数
简单难度给定一个二进制数组nums, 计算其中最大连续1的个数。01。原创 2022-11-24 00:02:45 · 132 阅读 · 0 评论 -
leetcode: 461 汉明距离
题目描述两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。来源:力扣(LeetCod...原创 2020-05-04 23:56:50 · 160 阅读 · 0 评论 -
leetcode: 412 Fizz Buzz
题目描述写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7", "8", "Fizz", "Buzz", "11", "Fizz原创 2020-05-11 19:39:56 · 197 阅读 · 0 评论 -
leetcode: 387 字符串中的第一个唯一字符
题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-unique-characte...原创 2020-04-27 11:11:58 · 133 阅读 · 0 评论 -
leetcode:350.两个数组的交集 II
题目详情给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。进阶:如果给定...原创 2020-04-02 18:45:47 · 100 阅读 · 0 评论 -
leetcode: 344 反转字符串
题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入...原创 2020-04-26 15:11:19 · 96 阅读 · 0 评论 -
leetcode: 326 3的幂
这是一道简单题题目描述给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.c...原创 2020-05-04 01:38:49 · 147 阅读 · 0 评论 -
leetcode: 304. 二维区域和检索 - 矩阵不可变
题目描述结果//题目类型:二维前缀和class NumMatrix {public: vector<vector<int>> ans; int n, m; NumMatrix(vector<vector<int>>& matrix) { n = matrix.size(), m = matrix[0].size(); ans.resize(n, vector<int>(m,原创 2022-04-08 23:33:47 · 355 阅读 · 0 评论 -
leetcode: 303 区域和检索 - 数组不可变
题目描述结果使用【前缀和】数组来求解class NumArray {public: vector<int> sum; NumArray(vector<int>& nums) { sum.resize(nums.size() + 1, 0); for (int i = 0; i < nums.size(); ++i) sum[i + 1] = sum[i] + nums[i]; //整原创 2022-03-09 17:32:51 · 692 阅读 · 1 评论 -
leetcode: 283. 移动零
题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所...原创 2020-04-07 02:53:39 · 149 阅读 · 0 评论 -
leetcode:278. 第一个错误的版本
题目描述你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例:给定 n = 5,并且原创 2020-05-12 20:28:10 · 389 阅读 · 0 评论 -
leetcode: 268 缺失数字
题目描述给定一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 … n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/missing-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请原创 2020-05-09 19:29:30 · 116 阅读 · 0 评论 -
leetcode: 242 有效的字母异位词
题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种...原创 2020-04-27 11:28:53 · 121 阅读 · 0 评论 -
leetcode:237. 删除链表中的节点
题目描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], node = 1输出: [4,5,9]解释: 给定你链表中原创 2020-05-13 22:00:49 · 141 阅读 · 0 评论 -
leetcode: 220. 存在重复元素 III
目录题目描述结果题目描述给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。示例 1:输入:nums = [1,2,3,1], k = 3, t = 0输出:true示例 2:输入:nums = [1,0,1,1], k = 1, t = 2输出:true示例 3:输原创 2021-04-18 01:36:58 · 95 阅读 · 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来源:力扣(LeetCode)链接:h...原创 2020-04-03 13:06:49 · 162 阅读 · 0 评论 -
leetcode: 213. 打家劫舍 II
目录题目描述状态转移方程结果题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,能够偷窃到的最高金额。示例 1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房原创 2021-04-15 16:09:26 · 85 阅读 · 0 评论 -
leetcode: 209. 长度最小的子数组
给定一个含有 个正整数的数组和一个正整数 。找出该数组中满足其和 的长度最小的 连续子数组 ,并返回其长度。如果不存在符合条件的子数组,返回 。示例 1:示例 2:示例 3:提示:进阶:原创 2022-12-06 22:24:43 · 217 阅读 · 0 评论 -
leetcode: 208. 实现 Trie (前缀树)
字典树: 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。目录导航题目描述结果题目描述Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:T.原创 2021-04-14 17:22:45 · 126 阅读 · 0 评论 -
leetcode: 206. 反转链表
题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。递归的方法/** * De原创 2020-05-13 23:50:09 · 122 阅读 · 0 评论 -
leetcode: 204 计数质数
题目描述统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。结果这道题真的是一道简单题,因为一看到这道题肯定用筛选法求素数,直接空间换时间class Solution {public: int countPrimes(int n) { if(n < 2...原创 2020-05-04 02:28:30 · 125 阅读 · 0 评论 -
leetcode: 202 快乐数
题目描述编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19输出:true解释:12 + 92 = 8282 ...原创 2020-05-02 18:17:31 · 134 阅读 · 0 评论 -
leetcode: 198. 打家劫舍
目录导航题目描述状态转移方程结果题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 +原创 2021-04-15 11:46:08 · 72 阅读 · 0 评论 -
leetcode: 191 位1的个数
题目描述编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:0000000000000000000000001000...原创 2020-05-04 23:47:32 · 182 阅读 · 0 评论 -
leetcode: 190 颠倒二进制位
题目描述颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为...原创 2020-05-05 00:19:06 · 130 阅读 · 0 评论 -
leetcode: 189.旋转数组
题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,9...原创 2020-04-16 15:39:28 · 156 阅读 · 0 评论 -
leetcode: 167. 两数之和 II - 输入有序数组
给你一个下标从开始的整数数组numbers,该数组已按,请你从数组中找出满足相加之和等于目标数target的两个数。如果设这两个数分别是和,则。以长度为 2 的整数数组的形式返回这两个整数的下标index1和index2。你可以假设每个输入,而且你 不可以 重复使用相同的元素。你所设计的解决方案必须只使用常量级的额外空间。原创 2022-11-23 23:08:47 · 128 阅读 · 0 评论 -
leetcode: 153. 寻找旋转排序数组中的最小值
中等难度已知一个长度为n的数组,预先按照升序排列,经由1到n次后,得到输入数组。例如,原数组47给你一个元素值的数组nums,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的。你必须设计一个时间复杂度为O(log n)的算法解决此问题。nums1n。原创 2022-12-20 19:41:02 · 118 阅读 · 0 评论 -
leetcode: 151. 反转字符串中的单词
给你一个字符串s,请你反转字符串中的顺序。单词 是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。**注意:**输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。' 's如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用O(1)额外空间复杂度的解法。原创 2022-11-23 21:34:58 · 167 阅读 · 0 评论 -
leetcode: 146. LRU 缓存
题目描述结果使用双向链表 + 哈希表实现class LRUCache {public: struct node { //双向链表 int key, value; node *front, *next; node () { key = 0, value = 0; front = nullptr, next = nullptr; } node (int k, i原创 2022-04-09 23:06:39 · 359 阅读 · 0 评论 -
leetcode: 145. 二叉树的后序遍历
后i序遍历:先找最左下的节点,然后从右下往左上输出题目描述利用迭代算法完成/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int ..原创 2022-05-22 09:57:39 · 92 阅读 · 0 评论 -
leetcode: 144. 二叉树的前序遍历
题目描述结果解题思路:Morris遍历 利用结点空指针/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), l原创 2022-05-22 09:12:00 · 176 阅读 · 0 评论