自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数组:数组理论基础

一些录友可能看不懂内存地址,我就简单介绍一下, 0x7ffee4065820 与 0x7ffee4065824 差了一个4,就是4个字节,因为这是一个int型的数组,所以两个相邻数组元素地址差4个字节。0x7ffee4065828 与 0x7ffee406582c 也是差了4个字节,在16进制里8 + 4 = c,c就是12。不同编程语言的内存管理是不一样的,以C++为例,在C++中二维数组是连续分布的。vector的底层实现是array,严格来讲vector是容器,不是数组。的方式获取到下标对应的数据。

2025-08-02 23:55:09 238

原创 leecode热题100:两数之和

因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。

2025-08-01 00:33:13 167

原创 最长递增子序列的个数

有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。给定一个未排序的整数数组。返回最长递增子序列的个数。

2025-07-27 23:06:48 188

原创 最长递增子序列

是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。最长递增子序列是 [2,3,7,101],因此长度为 4。,找到其中最长严格递增子序列的长度。

2025-07-26 21:53:23 165

原创 不同的子序列

测试用例保证结果在 32 位有符号整数范围内。如下所示, 有 3 种可以从 s 中得到。如下所示, 有 5 种可以从 s 中得到。

2025-07-25 23:52:12 158

原创 两个字符串的最小ASCII删除和

在 "leet" 中删除 "e" 将 101[e] 加入总和。如果改为将两个字符串转换为 "lee" 或 "eet",我们会得到 433 或 417 的结果,比答案更大。结束时,两个字符串都等于 "let",结果即为 100+101+101+101 = 403。在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。在 "delete" 中删除 "dee" 字符串变成 "let",在 "eat" 中删除 "t" 并将 116 加入总和。使两个字符串相等所需删除字符的。

2025-07-24 22:46:29 220

原创 编辑距离编辑距离

inention -> enention (将 'i' 替换为 'e')enention -> exention (将 'n' 替换为 'x')exention -> exection (将 'n' 替换为 'c')horse -> rorse (将 'h' 替换为 'r')intention -> inention (删除 't')exection -> execution (插入 'u')rorse -> rose (删除 'r')rose -> ros (删除 'e')

2025-07-24 00:09:20 344

原创 最长回文子序列

子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。,找出其中最长的回文子序列,并返回该序列的长度。一个可能的最长回文子序列为 "bbbb"。一个可能的最长回文子序列为 "bb"。

2025-07-22 23:50:41 159

原创 单词拆分单词拆分

返回 true 因为 "applepenapple" 可以由 "apple" "pen" "apple" 拼接成。返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。dp[i] 的意思是:字符串的前 i 个字符(即 s[0:i])能不能被字典拼出来。🔹 初始条件:空字符串是可以被“拼出来”的,所以我们把 dp[0] 设为 True。这个 i 代表我们正在考虑 s[0:i] 这一段能不能被字典拼出来。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。

2025-07-21 22:42:31 395

原创 最长回文子串

从中心向两边扩展l -= 1r += 1return s[l+1:r] # 返回当前最长回文这是一个帮助我们的小工具:它接收两个数字l和r,代表字符串中的位置whilel >= 0:左边的位置不能超出字符串最左边r < len(s):右边的位置不能超出字符串最右边:左右两边的字符要相同如果满足条件,就向两边扩展(l往左移,r往右移)最后返回找到的回文字符串(s[l+1:r]是Python中取字符串一部分的方法)res = ""# 奇数长度回文(单个中心)

2025-07-20 22:39:49 357

原创 最大正方形

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

2025-07-19 23:53:59 170

原创 下降路径最小和

可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。返回 min(dp[2]) = min(13,13,14) = 13。如图所示,为和最小的两条下降路径。如图所示,为和最小的下降路径。,请你找出并返回通过。

2025-07-18 22:03:17 464

原创 三角形最小路径和

如果是行的最后一个元素(j=len(triangle[i])-1),只能从上一行的最后一个元素下来。自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。对于中间的元素,可以从上一行的左边或上边下来,取较小值加上当前元素的值。如果是行的第一个元素(j=0),只能从上一行的第一个元素下来。数组最后一行的最小值,即为从顶部到底部的最小路径和。每一步只能移动到下一行中相邻的结点上。,那么下一步可以移动到下一行的下标。结构相同的二维数组,初始化为0。,找出自顶向下的最小路径和。

2025-07-18 21:22:17 377

原创 不同路径不同路径

第一行的每个位置如果不是障碍物,则路径数等于左边位置的路径数。第一列的每个位置如果不是障碍物,则路径数等于上面位置的路径数。,如果不是障碍物,则路径数等于上面和左边位置的路径数之和。1. 向右 -> 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右 -> 向右。存储的就是从左上角到右下角的不同路径数量。机器人每次只能向下或者向右移动一步。返回机器人能够到达右下角的不同路径数量。3x3 网格的正中间有一个障碍物。大小相同的二维数组,初始化为0。分别表示网格的行数和列数。

2025-07-16 23:08:32 320

原创 最小路径和

第一行的每个位置只能从左边过来,所以路径和是左边位置的路径和加上当前值。第一列的每个位置只能从上面过来,所以路径和是上面位置的路径和加上当前值。,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。大小相同的二维数组,用于存储到每个位置的最小路径和。因为路径 1→3→1→1→1 的总和最小。存储的就是从左上角到右下角的最小路径和。返回 dp[1][2] = 12。,因为起点的最小和就是它本身。返回 dp[2][2] = 7。分别表示网格的行数和列数。过来,取较小值加上当前值。

2025-07-15 23:40:32 602

原创 不同路径不同路径

一个机器人位于一个 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。1. 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右3. 向下 -> 向右 -&gt

2025-07-14 23:16:32 421

原创 删除并获得点数

之后,再次删除 3 获得 3 个点数,再次删除 3 获得 3 个点数。删除 3 获得 3 个点数,接着要删除两个 2 和 4。之后,删除 2 获得 2 个点数。总共获得 6 个点数。删除 4 获得 4 个点数,因此 3 也被删除。返回你能通过这些操作获得的最大点数。数组索引对应数字值,数组值存储该数字的总点数。找出数组中的最大值,用于确定值域范围。选择当前数字:点数 = 前前个状态。存储的就是整个值域范围内的最大点数。,你可以对它进行一些操作。例如:数字3出现2次,则。总共获得 9 个点数。

2025-07-14 00:06:09 661

原创 打家劫舍打家劫舍

定义一个名为rob的实例方法;self表示这个方法属于类的实例(在Python类方法中必须存在);nums是传入的参数,代表房屋金额列表""""""文档字符串(docstring),说明参数类型和返回值类型:输入参数 nums 是整数列表:返回值是整数类型prevprev。

2025-07-12 23:29:22 837

原创 使用最小花费爬楼梯

给你一个整数数组cost,其中cost[i]是从楼梯第i个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为0或下标为1的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。,20]15你将从下标为 1 的台阶开始。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15。cost = [,100,,1,,100,,100,6你将从下标为 0 的台阶开始。- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。

2025-07-11 00:07:43 436

原创 第N个泰波那契数

T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2。,请返回第 n 个泰波那契数 Tn 的值。

2025-07-09 22:47:48 381

原创 斐波那契数斐波那契数

F(n) = F(n - 1) + F(n - 2),其中 n > 1。开始,后面的每一项数字都是前面两项数字的和。表示)形成的序列称为。

2025-07-08 21:29:33 295

原创 爬楼梯爬楼梯爬楼梯

检查特殊情况:如果楼梯只有 1 级或 2 级,直接返回结果。从第3阶开始,一直循环到第n阶,依次计算每一阶的走法数。这相当于设置动态规划的初始状态(也像斐波那契的前两项)。,表示要爬的楼梯总阶数,返回的是一种总的走法数。,也就是:f(n-2) ← f(n-1)。如果楼梯只有 1 或 2 级,直接返回。当前的走法数 = 前两阶的走法数之和。1. 1 阶 + 1 阶 + 1 阶。,即:f(n-1) ← f(n)。时,有两种走法:1+1 或 2;2级:两种走法(1+1 或 2)阶,逐步推导出每一阶的走法数。

2025-07-07 22:26:51 1223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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