
Leetcode
Sun-wz
实践中学习,学习中进步
展开
-
Leetcode-704.Binary Search
Binary Search原创 2022-08-17 21:31:15 · 264 阅读 · 0 评论 -
Leetcode-1991. Find the Middle Index in Array
Topic BackgroundGiven a 0-indexed integer array nums, find the leftmost iddleIndex (i.e., the smallest amongst all the possible ones).A middleIndex is an index where nums[0] + nums[1] + … +nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2]原创 2022-03-30 22:59:36 · 1088 阅读 · 0 评论 -
Leetcode-11. Container With Most Water
Topic BackgroundYou are given an integer array height of length n. There are nvertical lines drawn such that the two endpoints of the ith line are(i, 0) and (i, height[i]). Find two lines that together with the x-axis form a container, such that the co原创 2022-03-29 21:43:55 · 708 阅读 · 0 评论 -
Leetcode-4. Median of Two Sorted Arrays
Topic backgroundGiven two sorted arrays nums1 and nums2 of size m and n respectively,return the median of the two sorted arrays.The overall run time complexity should be O(log (m+n)).Example 1:Input: nums1 = [1,3], nums2 = [2]Output: 2.00000Explana原创 2022-03-28 20:35:44 · 178 阅读 · 0 评论 -
Leetcode-36. Valid Sudoku
Topic backgroundDetermine if a 9 x 9 Sudoku board is valid. Only the filled cells needto be validated according to the following rules:Each row must contain the digits 1-9 without repetition. Each columnmust contain the digits 1-9 without repetition.原创 2022-03-18 15:45:17 · 255 阅读 · 0 评论 -
Leetcode-566. Reshape the Matrix
题目背景In MATLAB, there is a handy function called reshape which can reshapean m x n matrix into a new one with a different size r x c keeping itsoriginal data.You are given an m x n matrix mat and two integers r and crepresenting the number of rows and原创 2022-03-17 20:13:43 · 372 阅读 · 0 评论 -
Leetcode-350. Intersection of Two Arrays II
题目描述Given two integer arrays nums1 and nums2, return an array of theirintersection. Each element in the result must appear as many times as it shows in both arrays and you may return the result in any order.Example 1: Input: nums1 = [1,2,2,1], nums2 =原创 2022-03-16 23:04:49 · 598 阅读 · 0 评论 -
Leetcode-1.Two Sum
题目背景Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.You may assume that each input would have exactly one solution, and you may not use the same element twice. You can return the a原创 2022-03-15 19:21:34 · 869 阅读 · 0 评论 -
Leetcode-434.字符串中的单词数
题目背景统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。请注意,你可以假定字符串里不包括任何不可打印的字符。示例:输入: “Hello, my name is John” 输出: 5 解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,”算作 1 个单词。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string著作权归领扣网络所有。商业转载请联系官方授权,非商原创 2021-05-25 21:47:02 · 173 阅读 · 0 评论 -
Leetcode-415.字符串相加
题目背景给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。提示:num1 和num2 的长度都小于 5100 num1 和num2 都只包含数字 0-9 num1 和num2 都不包含任何前导零你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-strings著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解转载 2021-05-24 19:54:39 · 130 阅读 · 0 评论 -
Leetcode-414.第三大的数
题目背景给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。示例 1:输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。 示例 2:输入:[1, 2] 输出:2 解释:第三大的数不存在, 所以返回最大的数 2 。 示例 3:输入:[2, 2, 3, 1] 输出:1 解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。 此例中存在两个值为 2的数,它们都排第二。在所有不同数字中排第三大的数为 1 。提示:1 <= nums.leng原创 2021-05-23 21:57:19 · 185 阅读 · 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”,“13”,“14”,“FizzBuzz” ]来源:力扣(LeetCode) 链接:htt原创 2021-05-22 22:02:37 · 406 阅读 · 0 评论 -
Leetcode-392.判断子序列
题目背景给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。进阶:如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T的子序列。在这种情况下,你会怎样改变代码?致谢:特别感谢 @pbrother 添加此问题并且创建所有测试用例。示例 1:输入:s = “a原创 2021-05-21 22:41:34 · 106 阅读 · 0 评论 -
Leetcode-389.找不同
题目背景给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例 1:输入:s = “abcd”, t = “abcde” 输出:“e” 解释:‘e’ 是那个被添加的字母。 示例 2:输入:s = “”, t = “y” 输出:“y” 示例 3:输入:s = “a”, t = “aa” 输出:“a” 示例 4:输入:s = “ae”, t = “aea” 输出:“a”来源:力扣(LeetCode)原创 2021-05-20 22:58:05 · 78 阅读 · 0 评论 -
Leetcode-387.字符串中的第一个唯一字符
题目背景给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode” 返回 0s = “loveleetcode” 返回 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一class Solution {public: in原创 2021-05-19 20:21:52 · 96 阅读 · 0 评论 -
Leetcode-383.赎金信
题目背景给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。)示例 1:输入:ransomNote = “a”, magazine = “b” 输出:false 示例 2:输入:ransomNo原创 2021-05-18 20:45:32 · 159 阅读 · 0 评论 -
Leetcode-374.猜数字大小
题目背景We are playing the Guess Game. The game is as follows:I pick a number from 1 to n. You have to guess which number I picked.Every time you guess wrong, I will tell you whether the number Ipicked is higher or lower than your guess.You call a pre-de原创 2021-05-17 20:34:26 · 129 阅读 · 0 评论 -
Leetcode-367.有效的完全平方数
题目背景给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16 输出:true示例 2:输入:num = 14 输出:false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-perfect-square著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解原创 2021-05-16 21:42:54 · 93 阅读 · 0 评论 -
Leetcode-349.两个数组的交集
题目背景给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/intersection-of-two-arrays著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处解法一class原创 2021-05-15 21:39:31 · 91 阅读 · 0 评论 -
Leetcode-345.反转字符串中的元音字母
题目背景编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入:“hello” 输出:“holle”示例 2:输入:“leetcode” 输出:“leotcede”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-vowels-of-a-string著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一class Solution {public: string rev原创 2021-05-14 21:47:29 · 94 阅读 · 0 评论 -
Leetcode-344.反转字符串
题目背景编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输出:[“h”,“a”,“n”,“n”,“a”,“H”]原创 2021-05-13 22:15:18 · 85 阅读 · 0 评论 -
Leetcode-342.4的幂
题目背景给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x示例 1:输入:n = 16 输出:true示例 2:输入:n = 5 输出:false示例 3:输入:n = 1 输出:true提示:-231 <= n <= 231 - 1进阶:你能不使用循环或者递归来完成本题吗?来源:力扣(LeetCode) 链接:https://leetcode-原创 2021-05-12 20:05:37 · 170 阅读 · 0 评论 -
Leetcode-326.3的幂
题目背景给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x示例 1:输入:n = 27 输出:true 示例 2:输入:n = 0 输出:false 示例 3:输入:n = 9 输出:true 示例 4:输入:n = 45 输出:false来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-thre原创 2021-05-11 21:33:59 · 183 阅读 · 0 评论 -
Leetcode-292.Nim游戏
题目背景你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。 你们轮流进行自己的回合,你作为先手。 每一回合,轮到的人拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回false 。示例 1:输入:n = 4 输出:false 解释:如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最后一块原创 2021-05-10 22:39:42 · 112 阅读 · 0 评论 -
Leetcode-290.单词规律
题目背景给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1:输入: pattern = “abba”, str = “dog cat cat dog” 输出: true示例 2:输入:pattern = “abba”, str = “dog cat cat fish” 输出: false示例 3:输入: pattern =原创 2021-05-09 21:24:18 · 94 阅读 · 0 评论 -
Leetcode-283.移动零
题目背景给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一class Solution {public:原创 2021-05-08 21:57:14 · 102 阅读 · 0 评论 -
Leetcode-278.第一个错误的版本
题目背景你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。示例:给定 n = 5,并原创 2021-05-07 21:57:26 · 117 阅读 · 0 评论 -
Leetcode-268.丢失的数字
题目背景给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?示例 1:输入:nums = [3,0,1] 输出:2 解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1] 输出:2 解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,原创 2021-05-06 21:05:52 · 177 阅读 · 0 评论 -
Leetcode-258.各位相加
题目背景给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶: 你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-digits著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一原创 2021-05-05 21:50:40 · 101 阅读 · 0 评论 -
Leetcode-257.二叉树的所有路径
题目背景给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例: 输入:1 / \ 2 3 \ 5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-paths著作权归领扣网络所有。商业转载请联系官方授权,非商业原创 2021-05-04 22:26:02 · 85 阅读 · 0 评论 -
Leetcode-242.有效的字母异位词
题目背景给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram” 输出: true 示例 2:输入: s = “rat”, t = “car” 输出: false来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-anagram著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一class Solution原创 2021-05-03 10:58:10 · 137 阅读 · 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] 解释:给定你链表中值原创 2021-05-02 20:42:10 · 75 阅读 · 0 评论 -
Leetcode-235.二叉搜索树的最近公共祖先
题目背景 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 输出: 6 解释:.原创 2021-05-01 21:01:55 · 82 阅读 · 0 评论 -
Leetcode-234.回文链表
题目背景请判断一个链表是否为回文链表。示例 1:输入: 1->2 输出: false 示例 2:输入: 1->2->2->1 输出: true解法一class Solution {public: bool isPalindrome(ListNode* head) { if(head == NULL ||head->next == NULL) return true; ListNode* fast原创 2021-04-30 20:31:53 · 119 阅读 · 1 评论 -
Leetcode-232.用栈实现队列
题目背景请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek()返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你只能使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, si原创 2021-04-29 19:49:09 · 97 阅读 · 0 评论 -
Leetcode-231.2的幂
题目背景给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1 输出: true 解释: 20 = 1示例 2:输入: 16 输出: true 解释: 24 = 16示例 3:输入: 218 输出: false来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/power-of-two著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一class Solution {public:原创 2021-04-28 14:42:56 · 106 阅读 · 0 评论 -
Leetcode-228.汇总区间
题目背景给定一个无重复元素的有序整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表。也就是说,nums的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出:“a->b” ,如果 a != b “a” ,如果 a == b示例 1:输入:nums = [0,1,2,4,5,7] 输出:[“0->2”,“4->5”,“7”] 解释:区间范围是: [0,2]原创 2021-04-27 17:59:11 · 101 阅读 · 0 评论 -
Leetcode-226.翻转二叉树
题目背景翻转一棵二叉树。示例:输入:输出:来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/invert-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解法一class Solution{ public: TreeNode* invertTree(TreeNode* root){ if(root == NULL) return NULL; TreeNode* righ原创 2021-04-26 16:29:52 · 91 阅读 · 0 评论 -
Leetcode-225.用队列实现栈
题目背景请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通队列的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、s原创 2021-04-25 17:37:07 · 120 阅读 · 0 评论 -
Leetcode-263.丑数
题目背景给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 6 输出:true 解释:6 = 2 × 3示例 2:输入:n = 8 输出:true 解释:8 = 2 × 2 × 2示例 3:输入:n = 14 输出:false 解释:14 不是丑数,因为它包含了另外一个质因数 7 。示例 4:输入:n = 1 输出:true 解释:1 通常被视为丑数。提示:原创 2021-04-24 21:22:10 · 102 阅读 · 0 评论