自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Building a Containerised Backend with Docker Compose

and a。

2026-01-04 16:26:24 564

原创 Linux week 01

件), mv, rm, echo 内容 >> 文件名 (写入文件)或vi进入文件进行。查看内容:cat, less, more, tail, grep 以及管道符 |文件操作:touch(创建文件), mkdir(创建目录), cp(copy文。sudo:superuser do 的缩写,表示“以管理员身份执行”后续命。/bin/bash指定解释器的使用,不指定或会。权限管理:chmod, chown, sudo。导航:cd, pwd, ls, tree。ls:list 的缩写,列出当前目录内容。

2025-12-30 19:21:56 129

原创 AWS Lambda 学习笔

Lambda 是一个事件驱动的无服务器计算服务。它在特定事件发生时自动执行代码,例如 S3 上传文件、API 调用或计划任务。你不需要管理服务器,只需写好逻辑,AWS 自动运行。

2025-10-09 10:43:00 428

原创 LeetCode 01

思路:用一个字典去记录已经看过的数字,每次拿到新的数字去检查它的补数是不是在之前出现过了。那在遍历完这个数组后,就会把这个可能匹配的结果找出来。

2025-09-30 09:14:10 236

原创 Dotnet 项目手动部署到AWS 和Github action CICD 流程总结

deploy.yml 文件定义了具体的执行步骤,甚至可以添加逻辑代码判断或调用 marketplace 中现成的脚本(比如 Beanstalk 的自动部署脚本)。有了权限后,可以在 Beanstalk 中设置外部访问的 key(类似 token),叫做 access key。将这个 access key 放在 GitHub Actions 的 workflow 中,当 access key 信息验证通过后,它就能代表您对 Beanstalk 执行所有被授权的操作。审核通过后进入 CD 步骤,实现自动部署。

2025-09-06 14:08:49 1016

原创 关于Net Core Web API 项目测试 数据库模拟的两种不同方法 DC_week 6

/数据库不是测试的重点哦,直接继承的 MongoDB然后 把原来MongoDB context 里面的 方法 设置成 virtual 在test 的DB里面 overwirte 这个方法 标上 mock的方式来解决的。总结:建真实的数据库,使这个测试避免了复杂的配置接口等等,直接可以用数据库的context,同时只mock 需要的方法或者属性,使测试更加简单,高效。在之前的项目中,我们遇到了单元测试难写的问题,因为业务逻辑直接依赖DbContext,每次测试都要连真实数据库,测试很慢且不稳定。

2025-06-23 03:13:54 470

原创 算法训练 关于背包遍历顺序的思考

for i in range(num, target + 1): # 再遍历背包(从 num 开始,避免重复计算)print(combinationSum4_combinations([1, 2, 3], 4)) # 输出: 4。print(combinationSum4_permutations([1, 2, 3], 4)) # 输出: 7。for i in range(1, target + 1): # 先遍历背包。dp[0] = 1 # 目标和为0时,有1种方法(不选任何数)

2025-06-23 02:06:36 196

原创 算法leetcode 139 题 思路分析

(然后把这个字符串,在通过指针截取,去判断是否可以在字典里面出现,为什么我要一个个去遍历呢,其实就是我们是不知道到底哪个位置是会出现单词,所以,我们只能一个个去试。# 如果 s[0:start] 可拆分,并且 s[start:end] 是 word_list 里的单词,则 s[0:end] 可拆分。那S 要怎么切,我们可以用类似指针的概念,每次都是移动这个指针,就是切各种不同的组合,然后每个组合的元素都去字典里面查一下有没有。# dp[i] 表示 s[0:i] 是否可以由 word_list 组成。

2025-02-26 13:28:52 399

原创 算法训练 leetcode 494 题 关于状态转移公式的理解

在 0-1 背包问题中,我们通常使用一维数组来进行状态转移。

2025-02-24 17:20:16 902

原创 算法训练 leetcode 416 分割等和子集为什么可以对应背包问题解决的思考

就是当下我允许这个价值到这个范围,只要你小于或者等于我,都可以放在我对应的位置,哪怕我是 10,你加起来是2 都可以放,但是如果超过10就不可以,由于这个背包的性质,会把所有价值允许范围 0 到 11, 可以放在的组合都记录下来,有因为这个组合其实就是数字的值,那就有了以下结果,我们只要找到数组最后一行的最后一个,如果有11,答案就是True了。那如果数字和数字的值,就是价值,加在一起在这个允许的价值内,就记录下来。目标: 找任意数值的组合是11.

2025-02-20 22:38:42 310

原创 算法训练 关于背包问题 滚动数组 为什么从右到左 遍历顺序问题

14】 ,最后这个14 更新的值对这个 问号14没有影响,这个问号的值是取它左边的,绿色部分【0,0,10,10】 是上一轮遍历还没有更新的值,所以,当这个我们更新问号位置的值的时候,会去绿色部分找(这部分值是上一层留下来的,还没有被改动过),那在这里取需要的值,就不会导致需要取的值被新值覆盖,我们还是取的需要的那个旧值。【0,4,10,10】 那这个时候,14 取左边的值,这个值是已经是本层 i 更新过的,它要取的是没更新之前,上一行的,如果更新,那不是i -1的值,是i 层的了就会导致取值错误。

2025-02-20 15:06:59 158

原创 算法训练 leetcode 746 最小花费爬楼梯

本题中就是,比如我根节点是 0,那从根节点只能是走一步或者两步,就是相对于两个分支,那走完一步,又有两种选择,就是走一步还是两步,同理,第一次走两步以后,那每次面对的选择也是走一步或者两步,最后如果叶子节点可以到达我们要的顶楼,那就是把经过所有节点的花费加起来就是我们要的花费,找一个花费最少的,那就是我们要的结果。因为我们只能跳一步或者两步,要么就是一步跳上来的,要么是两步,那我们发现除了0 和 1 的位置,可以直接占位,不会花费就可以呆着,其他的点要到达,其实都是要把前面跳点对应的花费花了的。

2025-02-17 14:17:02 699

原创 算法训练 Leetcode 763 划分字母区间

假设我们有一个变量 “结束点”,来维护这个片段的最晚的位置,s = "ababcbacadefegdehijhklij",如这个例子,a最晚出现是在下标8的位置,# 如果在期间有比这个还晚的,就再更新,如果没有,那就是到了这个最晚位置又是一个切点,就是说这个最晚切点就是一个分割条件的零界点。# 如果里面夹的字母有在8这个位置后面出现的,那我们可以把这个最晚位置更新,那继续向这个新的最晚位置遍历。# 我们先要提前知道每个字母最晚出现的下标,然后在遍历的时候,在去更新这个切片的最远下标。

2025-02-14 18:25:12 308

原创 算法训练 leetcode 860 柠檬水找零

先把每种面额初始化一个变量。

2025-02-13 14:07:05 271

原创 算法训练 leetcode 90题

# 所以,如果数值出现相等的情况但是这个used 是True 那就不用去重,只有used 是False才会去重。# # 只有在树层上重复的时候才去重,如果used[i-1]等于True(1),说明还在树枝的回溯过程,# 当 i == start_index 时,意味着 i 是本层 for 循环的第一个元素,这个元素不能跳过。# 如果 nums[i] == nums[i - 1],则说明这个 nums[i] 在当前层已经被选择过,# 方法二:去重思路解析。

2025-02-09 14:24:24 355

原创 算法训练 leetcode 40 组合总和

但是for 循环每次进行的时候,都会在执行新的回溯过程,每个回溯过程之间是互相独立的,如果不加上标签去跟踪的话,其实函数本身不知道,自己在for 循环的时候,这个值是不是已经在别的回溯过程里出现过了,因为for 循环 和回溯是两个单独的过程,现在题目的意思,其实就是要我们怎么办到每次回溯得到的组合不能重复,我们办不到,如果for 循环上每个数字都要回溯,那就是一定会重复,我能做的就是提前判断这个回溯会不会是一样的结果,如果是,我们直接跳过它,来达到不重复的目的,但是我们怎么知道本次回溯就是和上次会有重复?

2025-02-06 12:23:00 863

原创 算法训练 leetcode 17 题 电话号码的字母组合

回溯递归的 index 就是index+1,不用 让它变成 i+1,i+1 是 start_index,就是在循环它本身的时候,取除了它本身后面的值,这个是同一个集合从前往后取 不能重复的情况,而我们现在是两个独立的集合,互相组合,index 为1 的可以取到 下一个集合index 为1 的,就是上面图的例子。假设有两个数字,那就是有两份字符串,我们把一个字符串先作为 for 循环的变量,就是说这个决定了 树的宽度,然后,另外一个字符串看成是 递归里面的变量,这个是递归的深度。这里的index不需要去重。

2025-02-05 16:49:08 1108

原创 算法训练 LeetCode:450.删除二叉搜索树中的节点

删除节点,首先我们要找到节点,然后才删除,删除以后它的左右节点如果有的话,要连在新的节点上,如果它没有左右节点, 那说明它就是叶子节点,直接删除就行。删除的方法就是它的父节点指向空,那就是把这个节点删除了。本文具体分析这个题的思路。

2025-02-02 16:43:17 1114

原创 算法训练 105 106 从中序与后序遍历序列构造二叉树 总结

第五步: 切割postorder数组. 得到postorder数组的左,右半边.# 第四步: 切割inorder数组. 得到inorder数组的左,右半边.# ⭐️ 重点1: 中序数组大小一定跟后序数组大小是相同的.# 第一步: 特殊情况讨论: 树为空. (递归终止条件),只要能构建一个最小单位的子树,我们就能用相同的方法递归构造整棵树。# 第二步: 后序遍历的最后一个就是当前的中间节点.如果画树来模拟后序遍历过程,就能清楚地看到,# 第三步: 找切割点.,最后访问的节点必然是当前子树的根。

2025-01-30 13:23:05 542

原创 算法训练 257 二叉树所有路径 回溯路径巨细步骤分析

回溯路径 (每一步的走向)

2025-01-28 12:45:11 268

原创 算法训练 day 8

*题目描述**: 给定四个包含整数的数组 `nums1`, `nums2`, `nums3`, `nums4`,计算有多少个元组 `(i, j, k, l)` 满足 `nums1[i] + nums2[j] + nums3[k] + nums4[l] = 0`。**题目描述**: 给定两个字符串 `s` 和 `t`,编写一个函数判断它们是否是有效的字母异位词。- 将 `nums1` 和 `nums2` 的所有可能和存入哈希表,键为和的值,值为出现次数。3. 如果相同,则是有效的异位词,否则不是。

2025-01-27 12:17:42 494

原创 对称二叉树 递归 详细思路分析 避免眩晕

四层满二叉树测试用例# 主函数入口main()我自己分析的草图。

2025-01-27 12:04:29 1031

原创 算法训练 二叉树 leetcode 题 116 /117

这两道题都是要填充每个节点的 next 指针,让这个指针指向其下一个右侧节点,第一个是完美二叉树,第二个没有提具体二叉树类型,下面要用的队列解法,要处理的节点会全部加到queue 里面,这个方法的代码可以同时适用这两道题,因为,代码逻辑,只是找到节点然后加进去queue,是不是完美二叉树 和普通二叉树都是一样的处理方式,代码都是一个个节点的找,一个个节点的加,和二叉树结构没什么关系,完美二叉树就是加的点多一些,只是重复几次步骤而已。这个时候,我们发现题目的要求是最后一个节点没有右节点要指向Null,

2025-01-26 13:17:20 1222

原创 算法训练 day 7

从暴力解法到字典优化的过程,体现了如何通过减少不必要的重复计算,提升代码效率。这段代码简单易记,但如果不了解背后的逻辑,稍作修改可能就会失效。因此,梳理每一步的用意是理解题目的关键。暴力解法:时间复杂度 O(n2)O(n^2)。字典构建优化:时间复杂度 O(n)O(n),但需要注意避免重复匹配。一步到位的优化解法:时间复杂度 O(n)O(n),同时逻辑更加简洁。希望这篇文章对大家的「两数之和」问题的优化过程有所帮助!做题不仅要会解,还要解透!如果还有改进需求,欢迎随时交流!😊。

2025-01-14 13:29:44 419

原创 算法训练营 第一天 链表 | 203.移除链表元素|707.设计链表|206.反转链表

一会儿它们是节点,我直接懵了,最后我理解了,这个cur 是一个对当前节点的引用,就类似于当前节点的一个 映射,就是用这个cur 可以读取和操作这个节点的值,然后这个cur 值是可以改动的,就是一个可以移到的影子,移到谁那 就可以处理谁,节点本身还是存在在内存里面 只不过 通过这个cur 一通处理 指针的指向改变,导致我们获取的节点是删了vaule 以后的。大一 语法本身学的乱七八糟,这些导致我学习的时候很懵逼 很忙 不停的去查概念 才能继续理解,我为了让自己理解透,就是自己也试着画图了。

2025-01-11 21:53:57 196

空空如也

空空如也

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

TA关注的人

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