自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 力扣_动态规划5—买卖股票的最佳时机含冷冻期

给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格。​设计一个算法计算出最大利润。

2024-03-17 19:31:31 651

原创 力扣_动态规划4—最大正方形

在一个由 ‘0’ 和 ‘1’ 组成的二维矩阵matrix内,找到只包含 ‘1’ 的最大正方形,并返回其面积。

2024-03-17 11:07:09 790

原创 力扣_动态规划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

原创 力扣_字符串11—实现前缀树(字典树、Trie树)

bool。

2024-02-22 19:25:41 408

原创 力扣_字符串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

原创 力扣_字符串4—编辑距离

给你两个单词word1和word2, 请返回将word1转换成word2所使用的最少操作数。

2024-02-06 18:14:53 1068 1

原创 力扣_字符串3—通配符匹配

给你一个输入字符串s和一个字符模式p,请你实现一个支持?和∗?∗。

2024-02-04 21:32:27 858

原创 力扣_字符串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

原创 力扣_数组20—螺旋矩阵

给你一个m行n列的矩阵matrix,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。

2023-12-21 21:32:34 298

原创 力扣_数组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

原创 力扣_数组15—接雨水

给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

2023-12-17 19:09:10 97 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

原创 力扣_数组12—全排列

给定一个不含重复数字的数组,返回其全排列nums123[[123132213231312321]]

2023-12-11 10:57:00 58 1

原创 力扣_数组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关注的人

提示
确定要删除当前文章?
取消 删除