自定义博客皮肤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)
  • 收藏
  • 关注

原创 configure api key in opencode/codex

self-recording

2026-09-14 14:46:33 159

原创 hands-on experience map of using pywb

self-recording for possible future use

2026-09-12 14:42:17 91

原创 算法题打卡-二维动态规划

无法继续的原因是匹配后没有利用上一个状态做转移,而是粗暴地给dp[i][j]在初始值基础上去加一。当前比较c1和c2的结果已知,如果都满足,加一是对的,给谁加一?基于这个逻辑,c1≠c2的处理逻辑就很好处理了,在(t1-c1,t2)和(t1,t2 - c2)中取更大值。我自己在考虑时,匹配成功的结果是dp[i][j]++,匹配不成功时,就想不到如何利用前一个状态了。很有趣的一道题,运用1143解法的方式很巧妙,出处参考力扣题解,这里我把自己的思考过程写下来。dp[1][1] = "h"到"r"的距离。

2026-07-16 16:44:58 202

原创 算法题打卡-二刷动态规划

去年写了个版本,已经完全忘记思路了,看一眼题解的dp数组,就开始自己写。回看去年的版本,发现定义的dp数组完全不同,不变的是,只要定义清晰,就能写出来。理解题目对于我的不变量和变量,让我觉得很有趣。我忽然注意到英文的problem和solve the problem,对应于中文的题目和解题,我觉得差别还挺大的。我们现在常常用刷题代替解题,「刷」会让我联想到,题目有一个库,刷的过程是将这个库全部扫一遍,装进脑袋。从去年到今年的两次解题来看,我装进脑袋的肯定不是这个库,那么究竟是什么?也许是一种方法、思维方

2026-06-26 10:27:45 213

原创 算法题打卡-堆 3题

需要出现频率前k高,首先得自己构建一个频率数组,然后对该数组采用215题大根堆的做法。

2026-05-15 12:10:51 42

原创 算法题打卡-二分查找6题

刚开始写的时候想用一个二分查找代码写,并尝试复用,发现思路越来越乱,后来索性就全写出来。但在找到后的处理思路略微不同:主程序的找到后要定位区间,找左边界的要继续往左扩张,找右的要往右扩张。列表中可能有重复元素,用二分查找先定位是否有该元素存在,有的话还要继续查询开始和结束位置。此题我并没有追求简洁的代码,进入while循环后,先判断端点值和中值是否符合要求,不符合再继续搜索。上述分析过程太繁琐了,其实我是边写边试,错了再改,通过后才分析的。本题最重要的是定查找区间,这里我定的是左闭右开,即。

2026-05-06 12:41:20 176

原创 ssh连接排错

note.t4x.org文章中的排错范式很好,我严格按照它的格式去写问题描述,将问题描述发给AI并让其提供排错思路,跟着思路走了几步就将问题解决。

2026-04-23 15:45:57 32

原创 算法题打卡-单调栈4题

空间换时间,用单调递增栈。表示方法为 [栈底,栈头),出栈顺序为递增栈,例如 [90, 80, 70) 出栈顺序是70,80,90。我曾经设想过用栈来给元素排序为递增,这样的话还得用到2个栈,例如temperatures = [73, 74, 75, 71, 71, 72, 76, 73],最终在栈里排列为 [76, 75, 74, 73, 73, 72, 71, 71),用下标表示为 [6, 2, 1, 0, 7, 5, 3, 4)。

2026-04-22 12:40:02 333

原创 c++基础(一)内存/智能指针

对齐规则:1.基本类型的对齐值就是其sizeof值;2.结构体的对齐值是其成员的最大对齐值,记为m;3.编译器可以设置对齐值,方法为实际对齐值 = min{m, n}。

2026-04-10 15:15:12 44

原创 10种排序算法详解

按照是否比较元素大小分为比较/非比较算法,根据细微的算法差异,比较类算法又分为4种。

2026-03-19 18:02:40 392

原创 RAII编程思想

RAII做法,资源锁定和释放交给编译器自动完成,例如c++做法:智能指针、std::ifstream 和std::ofstream代替。Resource Acquisition is Initialization 资源获取即初始化。释放资源前异常返回了,则资源泄漏:内存泄露、文件句柄泄漏、死锁。资源类型:内存、文件、锁。

2025-09-17 09:33:19 204

原创 算法题打卡-动态规划22题

5月份刷过,现在来看就比较简单了,先用动规五部曲走一遍,然后用三个变量代替数组来做状态压缩。先用二维数组ac,然后用一维数组做状态压缩。用二维数组ac了,做成一维数组没通过。

2025-08-31 17:09:25 270

原创 使用VS Code ssh连接阿里云ECS

本次错误在于没有在User正确填写root,自认为它是无关紧要的,耗时1h,包括:了解ssh原理,确保公私钥在服务器和主机;使用copilot分析ssh报错,定位到User填错的问题。

2025-08-23 23:04:00 313

原创 算法题打卡-贪心算法17题

先排序,for循环按照胃口g从小到大遍历,通过while内循环找到第一个能满足它的饼干s,找到了就将g和s下标同时后移一位。然后for循环遍历,使用preDiff和curDiff来记录前一次差值和当前差值。首先用一个bool数组来去重(去掉连续的重复元素),增加了空间开销O(n)。重点在于:当前「子序和」如果为负数,就要直接丢弃,使用下一个数重新开始。「刚开始是从大到小找,有点磕巴,换成从小到大逻辑就顺了。划重点:「子序和」为负数,而不是碰到负数就丢弃。「此题4月做过,已经忘得干干净净了。

2025-08-21 19:48:57 279

原创 算法题打卡-回溯算法12题

第一天做回溯,似懂非懂,先追求ac,蒙对再说;第二天仍然靠蒙,在纸上演算一下理解得好一些;第三天接受了回溯就是这么个固定写法;第四天在去重的写法上仔细演算终于觉得理解了,打印出函数运行时然后跟着画出组合树。

2025-08-17 09:56:13 223

原创 200以内的质数

质数定义:只能被1和它自己整除。分解问题:先找1-100的质数,然后根据其经验写出101-200的质数。

2025-07-31 17:27:56 1314

原创 算法题打卡-二叉树33题

前中后序遍历的主语是根节点,久了很容易忘记这个概念,但是细想一下必定如此:整棵树都是从根开始裂变的,那么围绕树的概念,主体一定是根,三年前第一次学二叉树的时候就觉得它的递归定义非常优美:1. 二叉树有一个根节点;2. 根节点的左子树是二叉树;3. 根节点的右子树是二叉树。上述递归定义是按照前序定义的,也是最自然的顺序:先有了根,才会有左子树和右子树。

2025-07-22 16:06:07 267

原创 算法题打卡-栈与队列4题

对于不涉及push的两次连续操作如pop-pop,pop-peek,在一次操作后将元素从stOut移回stIn的步骤是冗余的,因此优化为:如果需要push,再将stOut元素搬回stIn,反之就让它们留在stOut。队列pop:stIn元素依次移到stOut,stOut栈顶元素res pop,其余元素移回stIn,返回res;队列peek:stIn元素依次移到stOut,取stOut栈顶元素res,所有元素移回stIn,返回res。pop:将非空队列的size-1个元素移到另一个,pop尾部;

2025-07-20 14:47:30 738

原创 算法题打卡-字符串5题

先找数字数量确定新s的size并resize,然后从后到前同步扫描新旧s,原地替换数字。都是双指针从两端逼近中间。II题略微不同在于,需要先定位双指针的位置。

2025-07-16 11:17:37 220

原创 算法题打卡-哈希表8题

如果sum出现过(用unorder_set记录出现过的sum),说明进入无限循环了,即非快乐数。如果加和为1,即快乐数。一边遍历一边将数插入map,遍历过的数才会进入map,保证了一个数不会被访问2次。主要学习unordered_set用法,记录不重复的key可以用这个数据结构。用数组计数,此处数组即哈希表,key是字母,value是出现次数。主要学习unordered_map用法。注意几种数据结构的特点和用法。

2025-07-14 20:53:59 201

原创 算法题打卡-链表篇6题

上面的逻辑有点反直觉,搞清楚逻辑之后比较兴奋(两个指针以1和2的速度前进并在环里相遇这件事情让我心驰神往是怎么回事...),结果写代码实现又花了点时间,还是要写写伪代码先捋捋思路,向slow学习,一步一步来;注意pre cur双指针,以及tmp的定义,pre<-cur连上之后cur->next就变了,因此要先使tmp = cur->next;这与步长设置有关,在2和1的设置下,fast的相对速度为1,即fast一步一步地逼近slow,不可能错过。add:pre-cur变为pre-new-cur;

2025-07-11 11:07:19 1144

原创 算法题打卡-数组篇6题

正方形在越变越小,所以设置start和end,对角线的起终点,每轮次结束start++和end--。思想很好理解,写的时候用了while循环结果会出错,懒得debug,换了for循环就没有这个问题,主要还是while循环对于fast++和slow++的处理容易搞乱。找到后续target区间的方法是,移动左指针直到不满足target(中间也有可能找到target),移动右指针直到找到target。这题以前做过,今天重刷比较顺利,需要注意的点主要是遵循一个从一而终的规则,我用的是左闭右开区间。

2025-07-09 15:53:26 258

空空如也

空空如也

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

TA关注的人

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