- 博客(47)
- 收藏
- 关注
原创 力扣_动态规划5—买卖股票的最佳时机含冷冻期
给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格。设计一个算法计算出最大利润。
2024-03-17 19:31:31
651
原创 力扣_动态规划3—地下城游戏
恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);
2024-03-15 17:15:25
535
原创 力扣_动态规划2—乘积最大的子数组
给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。对比:“力扣_数组19—最大子数组和”
2024-03-14 15:41:01
672
原创 力扣_动态规划1—买卖股票的最佳时机
给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
2024-03-12 21:40:19
923
原创 力扣_字符串10—重复的DNA序列
DNA序列 由一系列核苷酸组成,缩写为 ‘A’, ‘C’, ‘G’ 和 ‘T’.。例如,“ACGAATTCCG” 是一个 DNA序列。在研究 DNA 时,识别 DNA 中的重复序列非常有用。给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。示例 1:输入:s = “AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT”输出:[“AAAAACCCCC”,“CCCCCAAAAA”]
2024-02-18 17:44:14
287
原创 力扣_字符串9—单词接龙I、II
按字典wordList完成从单词beginWord到单词endWord转化,一个表示此过程的 转换序列 是形式上像beginWord−s1−s2−...−sksi1<=i<=kwordListbeginWordwordListsk==endWordbeginWordendWordwordListbeginWordendW。
2024-02-16 10:31:31
799
原创 力扣_字符串8—不同的子序列
给你两个字符串s和t,统计并返回在s的 子序列 中t出现的个数,结果需要对1097取模。示例:srabbbittrabbit3解释:如下所示, 有 3 种可以从s中得到rabbit的方案。
2024-02-14 19:42:18
984
原创 力扣_字符串7—交错字符串
给定三个字符串s1s2s3,请你帮忙验证s3是否是由s1和s2组成的。两个字符串s和t交错 的定义与过程如下,其中每个字符串都会被分割成若干ss1s2...sntt1t2...tm∣n−m∣<=1s1t1s2t2s3t3...t1s1t2s2t3s3...
2024-02-14 19:30:03
768
原创 力扣_字符串6—最小覆盖字串
给你一个字符串 s 、一个字符串 t。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “”。示例 :输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”解释:最小覆盖子串 “BANC” 包含来自字符串 t 的 ‘A’、‘B’ 和 ‘C’。
2024-02-12 20:56:59
389
原创 力扣_字符串5—解码方法
要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。给你一个只含数字的 非空 字符串 s ,请计算并返回 解码 方法的 总数。
2024-02-11 18:02:48
775
原创 力扣_字符串2—最长有效括号
给你一个只包含 ‘(’ 和 ‘)’ 的字符串 sss,找出最长有效(格式正确且连续)括号子串的长度。始终保持栈底元素为最后一个没有被匹配的右括号的下标,这样的做法主要是考虑了边界条件的处理,栈里其他元素维护左括号的下标:需要注意的是,如果一开始栈为空,第一个字符为左括号的时候我们会将其放入栈中,这样就不满足提及的最后一个没有被匹配的右括号的下标,为了保持统一,我们在一开始的时候往栈中放入一个值为 −1-1−1 的元素
2024-02-01 18:49:09
826
原创 力扣_字符串1—字符串转整数
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
2024-01-16 21:21:16
456
原创 力扣_数组30—将有序数组转换为二叉搜索数
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。(结果不唯一)高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。
2024-01-13 18:00:05
486
原创 力扣_数组29—根据前序与中序遍历序列构建二叉树、根据中序与后序遍历序列构建二叉树
给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。
2024-01-12 20:55:32
929
原创 力扣_数组28—子集
给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
2024-01-11 20:57:10
942
原创 力扣_数组27—最大矩形
给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。
2024-01-11 20:08:02
866
原创 力扣_数组26—合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n。
2024-01-10 21:38:04
1067
原创 力扣_数组25—柱状图中最大的矩形
题目给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。思路暴力法:有下述事实:最大矩形的高度一定等于某个柱子的高度遍历每个柱子(对于柱子 iii,其高度为 heights[i]heights[i]heights[i]),计算当矩形高度等于 heights[i]heights[i]heights[i] 时所能构成的矩形的最大面积找到第 iii 个柱子向左向右所能延申的最大宽度,即找到左边第一个小于 heig
2024-01-09 21:34:28
946
原创 力扣_数组24—搜索旋转排序数组II
已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。在传递给函数之前,nums在预先未知的某个下标k0<=knumslength上进行了 旋转 ,使数组变为numsknumsk1...numsn−1nums0nums1...numsk−1]](下标 从 0 开始 计数)。例如,0124445667在下标 5 处经旋转后可能变为456670。
2024-01-09 15:47:10
1046
原创 小插曲—二分法
步骤初始化左右指针 pl,prpl, prpl,pr取中间索引 mid=int(pl+pr)/2mid = int(pl+pr)/2mid=int(pl+pr)/2根据 nums[mid]nums[mid]nums[mid] 判断下次的查找区间更新 pl,prpl, prpl,pr 回到第二步写代码时存在的问题找 midmidmid 的方法: 奇数/偶数循环条件: pl<prpl<prpl<pr or pl<=prpl <=prpl<=prpl,pr
2024-01-04 22:05:14
836
原创 力扣_数组23—最短路径
一个机器人位于一个m∗n网格的左上角。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。
2023-12-28 10:30:22
1119
原创 力扣_数组22—插入区间
给你一个,按照区间起始端点的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
2023-12-23 20:47:24
389
原创 力扣_数组21—合并区间
合并区间intervals[[13268101518]][[168101518]]解释:区间13和26重叠, 将它们合并为16。
2023-12-23 20:07:00
1019
原创 力扣_数组19—最大子数组和
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:nums−21−34−121−546解释:连续子数组4−121的和最大,为6。
2023-12-21 20:24:36
376
原创 力扣_数组18—字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。示例:输入:strseatteatanatenatbat输出:[[batnattanateeattea]]
2023-12-20 20:51:28
809
1
原创 力扣_数组17—旋转矩阵
给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转90度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
2023-12-19 21:09:24
476
1
原创 力扣_数组16—跳跃游戏II
给定一个长度为n的整数数组nums。初始位置为nums0。每个元素numsi表示从索引i向前跳转的最大长度。换句话说,如果你在numsi处,你可以跳转到任意numsij0<=j<=numsiijn返回到达numsn−1的最小跳跃次数。
2023-12-18 21:14:31
771
1
原创 力扣_数组14—缺失的第一个正数
示例 1:nums1203示例 2:nums34−112示例 3:nums78911121请你实现时间复杂度为On并且只使用常数级别额外空间的解决方案。
2023-12-13 21:36:07
32
原创 力扣_数组13—组合总和
给定一个候选人编号的集合candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用 一次。注意:解集不能包含重复的组合。
2023-12-12 20:52:24
36
原创 力扣_数组11—判断是否为有效的数独
题目有效数独1−91-91−9 在每行只出现一次1−91-91−9 在每列只出现一次1−91-91−9 在每个小九宫格只出现一次(9×99×99×9 的 棋盘分成 3×33×33×3 个 3×33×33×3 的小九宫格)思路哈希表创建三个二维数组 rows[9][9],cols[9][9],subboxes[9][9]rows[9][9], cols[9][9], subboxes[9][9]rows[9][9],cols[9][9],subboxes[9][9]rows[i
2023-11-20 21:20:27
37
1
原创 力扣_数组10—在排序数组中查找元素的第一个和最后一个位置
题目给你一个按照非递减顺序排列的整数数组 numsnumsnums,和一个目标值 targettargettarget。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 targettargettarget,返回 [−1,−1][-1, -1][−1,−1]。你必须设计并实现时间复杂度为 O(logN)O(log N)O(logN) 的算法解决此问题。关键点O(logN)O(log N)O(logN) 复杂度思路对数复杂度表面要用二分查找使用两次二分查找分别找
2023-11-19 18:14:37
36
1
原创 力扣_数组9—搜索旋转排序数组
题目旋转排序数组:将严格单调递增数组 [k,n−1][k,n-1][k,n−1] 的子序列放到开头。例如, [0,1,2,4,5,6,7][0,1,2,4,5,6,7][0,1,2,4,5,6,7] 在下标 333 处经旋转后可能变为 [4,5,6,7,0,1,2][4,5,6,7,0,1,2][4,5,6,7,0,1,2].要求以 O(logN)O(logN)O(logN) 的复杂度返回旋转排序后的数组中值为 targettargettarget 的索引,没有则返回 −1-1−1.关键点O(
2023-11-17 21:26:22
79
1
原创 力扣_数组8—下一个排列
题目原题目看不懂他在说什么,这里简单描述一下字典序:英文字典中单次的排序方法,即比较第一个字母,相同则比较第二个字母,以此类推本题要求给出输入数组的下一个排列,类似字典中一个单词的下一个单词例子 [1,4,8,5,3,2,1][1, 4, 8,5,3,2,1][1,4,8,5,3,2,1] 的下一个是 [1,5,1,2,3,4,8][1,5,1,2,3,4,8][1,5,1,2,3,4,8] ([1,4][1,4][1,4] 开头的已经没有更大的了,因此下一个是 [1,5][1,5][1,5] 开
2023-11-17 19:55:38
27
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人