leetcode题解
超翔之逸
可关注超翔之逸微信公众号哦!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
比较含退格的字符串+每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。输入: temperatures = [73,74,75,71,69,72,76,73]著作权归领扣网络所有。输入:s = "ab#c", t = "ad#c"输入:s = "ab##", t = "c#d#"解释:s 会变成 "c",但 t 仍然是 "b"。输入:s = "a#c", t = "b"输出: [1,1,4,2,1,1,0,0]原创 2022-09-18 13:21:32 · 298 阅读 · 0 评论 -
二分查找-I求解
给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1。数据范围:0 \le len(nums) \le 2\times10^50≤len(nums)≤2×105 , 数组中任意值满足 |val| \le 10^9∣val∣≤109。进阶:时间复杂度 O(\log n)O(logn) ,空间复杂度 O(1)O(1)请实现无重复数字的升序数组的二分查找。原创 2022-09-14 16:17:58 · 296 阅读 · 0 评论 -
反转链表题解
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。数据范围: 0\leq n\leq10000≤n≤1000。如当输入链表{1,2,3}时,原创 2022-09-14 13:41:50 · 235 阅读 · 0 评论 -
最大公约数:输入n个数,求出这n个数的最小值,最大值以及他们的最大公约数。
解决方法: (1)算法的基本思想: 需要用到基本的数学思维求得最大公约数。 最大公约数的求法:这里采用辗转相除法来求得最大公约数 Tips:同样要掌握最小公倍数的求法。 这里给出示例代码:仅供学习。 最小公倍数=两数的乘积/最大公约数。 (2)代码实现: #include <iostream> #include <math.h> using namespace std; int findMax(int *arr, int...原创 2022-02-06 10:19:38 · 894 阅读 · 0 评论 -
有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若s 和 t中每个字符出现的次数都相同,则称s 和 t互为字母异位词。 示例1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 提示: 1 <= s.length, t.length <= 5 * 104 s 和 t仅包含小写字母 来源:力扣(Leet...原创 2021-09-22 13:45:13 · 116 阅读 · 0 评论 -
字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 示例: s = "leetcode" 返回 0 s = "loveleetcode" 返回 2 提示:你可以假定该字符串只包含小写字母。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Sol..原创 2021-09-22 13:43:28 · 207 阅读 · 0 评论 -
赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。 (题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。) 示例 1: 输入:ransomNote = "a", magazine = "b" 输出:false 示例 2: 输入:ransomN.原创 2021-09-22 13:41:54 · 120 阅读 · 0 评论 -
矩阵置零
给定一个m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 进阶: 一个直观的解决方案是使用 O(mn)的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O(m+n) 的额外空间,但这仍然不是最好的解决方案。 你能想出一个仅使用常量空间的解决方案吗? 示例 1: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例 2: 输...原创 2021-09-21 11:10:13 · 165 阅读 · 0 评论 -
有效的数独
请你判断一个9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用'.'表示。 注意: 一个有效的数独(部分已被填充)不一定是可解的。 只需要根据以上规则,验证已经填入的数字是否有效即可。 示例 1: 输入:board = [["5","3",".",".","7...原创 2021-09-21 11:07:55 · 133 阅读 · 0 评论 -
杨辉三角
给定一个非负整数numRows,生成「杨辉三角」的前numRows行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例2: 输入: numRows = 1 输出: [[1]] 提示: 1 <= numRows <= 30 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/proble...原创 2021-09-21 11:05:52 · 105 阅读 · 0 评论 -
重塑矩阵
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。 给你一个由二维数组 mat 表示的m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。 重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。 如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。 示例 1: 输入:mat = [[1,2],...原创 2021-09-21 11:04:05 · 135 阅读 · 0 评论 -
买卖股票的最佳时机
给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。 示例 1: 输入:[7,1,5,3,6,4] 输出:5 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2021-09-21 11:02:01 · 109 阅读 · 0 评论 -
两个数组的交集
给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9] 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 我们可以不考虑输出结果的顺序。 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果nums1的大小比nums2小很多,哪种方法更...原创 2021-09-21 10:59:58 · 249 阅读 · 0 评论 -
合并两个有序数组
给你两个按 非递减顺序 排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例 1: 输入:nums1 = [1..原创 2021-09-18 18:46:09 · 124 阅读 · 0 评论 -
两数之和题解
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], ta...原创 2021-09-18 18:44:37 · 127 阅读 · 0 评论 -
最大子序和
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例 1: 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组[4,-1,2,1] 的和最大,为6 。 示例 2: 输入:nums = [1] 输出:1 示例 3: 输入:nums = [0] 输出:0 示例 4: 输入:nums = [-1] 输出:-1 示例 5: 输入:nums = [-100000] 输出:-100000 提示...原创 2021-09-18 00:00:49 · 120 阅读 · 0 评论 -
存在重复元素
给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 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) 链接:https://leetcode-cn.com/problems/contains-duplicate 著作.原创 2021-09-17 23:44:51 · 103 阅读 · 0 评论
分享