- 博客(26)
- 收藏
- 关注
原创 LeetCode 189. 轮转数组
思路和swap函数类似,创建一个新vector来存储最终需要移动的那部分元素,然后通过遍历,移动相应的元素,然后再赋值那些被遮盖的元素。过程中需要注意,nums=1和nums=0的情况,无论k为多少,nums都不会变化;1.整体反转:将整个数组反转,使末尾元素移动到前端。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]3.剩余元素反转:将剩余元素反转,恢复其原有顺序。个元素再次反转,恢复其原有顺序。
2025-09-01 16:57:43
163
原创 LeetCode 56. 合并区间
3.判断每个区间的处理方式,如果区间处于ans.back()区间中,则不处理,如果区间的左端点<=ans.back()的右端点,则更新更大的右端点值,否则,直接把区间加入ans。1.对 vector<vector<int>> 排序,需要按照先比较区间开始,如果相同再比较区间结束,使用默认的排序规则即可。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。
2025-08-31 21:39:34
102
原创 LeetCode 136. 只出现一次的数字
除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2025-08-30 20:46:52
259
原创 LeetCode 76. 最小覆盖子串
通过在字符串s中动态维护一个可变窗口,利用双指针扩展右边界寻找包含t所有字符的窗口,然后收缩左边界优化最小子串,同时使用哈希映射精确跟踪字符频率,最终以线性时间复杂度O(n)找到最小覆盖子串。最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。t 中两个字符 'a' 均应包含在 s 的子串中,因此没有符合条件的子字符串,返回空字符串。所有字符的子串,则返回空字符串。整个字符串 s 是最小覆盖子串。所有字符的最小子串。
2025-08-29 14:02:56
153
原创 LeetCode 239. 滑动窗口最大值
通过判断窗口滑动后最大值是否还在窗口中,并且和新传入的窗口右边界元素进行比较,减少了大量判断,对纯暴力算法进行了优化,但是最坏的时间复杂度依然为0(nk),仍然有两组案例通过不了。仔细阅读该题目不难发现,题目和双端队列的定义很相似,于是考虑引入双端队列,可以简化编程,降低时间复杂度。暴力算法的时间复杂度为0(nk),大部分案例都通过不了。核心优化思想:单调队列,这种方法的巧妙之处在于它。,而不是为每个窗口单独计算,从而实现了线性时间复杂度。时间复杂度:O(n),空间复杂度:O(k)。
2025-08-28 18:40:27
237
原创 LeetCode 560. 和为 K 的子数组
我们建立哈希表 mp,以和为键,出现次数为对应的值,记录 pre[i] 出现的次数,从左往右边更新 mp 边计算答案,那么以 i 结尾的答案 mp[pre[i]−k] 即可在 O(1) 时间内得到。需要注意的是,从左往右边更新边计算的时候已经保证了mp[pre[i]−k] 里记录的 pre[j] 的下标范围是 0≤j≤i。我们定义 pre[i] 为 [0..i] 里所有数的和,则 pre[i] 可以由 pre[i−1] 递推而来,即: pre[i]=pre[i−1]+nums[i]
2025-08-27 17:31:33
263
原创 LeetCode 438. 找到字符串中所有的字母异位词
该算法最初的想法就是遍历一遍s,截取字串和p比较,但是这种方法会超时,于是想到,如果窗口移动过程中,出去的字符和新进来的如果是同一个字符,一定满足条件,否则不满足,可以直接跳过,减少遍历,就要考虑到p长度为1的情况,最终可以通过所有样例。起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。
2025-08-26 20:27:33
305
原创 LeetCode 3. 无重复字符的最长子串
算法核心思想:使用集合来记录每一个字母为首的字串,来去确保无重复字符。因为无重复字符的最长子串是 "wke",所以其长度为 3。因为无重复字符的最长子串是 "abc",所以其长度为 3。因为无重复字符的最长子串是 "b",所以其长度为 1。跳到该字符上次出现位置的下一个位置,这样能确保窗口。,说明这个字符要么没出现过,要么出现在当前窗口之前。数组 m:记录每个字符最近一次出现的位置+1。判断重复字符的原理:存储的是字符。的长度,"pwke"是一个子序列。表示当前考虑的无重复字符子串。内始终没有重复字符。
2025-08-25 18:03:07
166
原创 LeetCode 42.接雨水
时,说明左边的高度是限制因素,此时左边最大高度决定了当前位置能接多少雨水,右边的情况同理,双指针总是移动高度较小的一边,因为积水高度由较矮的一边决定。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。算法核心思想:对于每个位置,它能接的雨水量取决于它左右两边最高柱子中的较小值。第一步,从左向右扫描,计算每个位置。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。第三步,计算每个位置的积水量,对于每个位置。
2025-08-24 20:50:09
219
原创 LeetCode 15.三数之和
为了能使用双指针遍历所有情况,需要先把数组进行排序(双指针的思想大概就是两个指针向中间移动,需要找到向中间移动的条件),此题中指针移动的条件,是三数之和与0的关系,比0小则移动left让总数总数变大,比0大则移动right让总数变小,等于0时就加入数组,这样就能找到包含nums[i]这个数所有三数之和等于0的情况,遍历nums一次就能找到所有的解。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。
2025-08-23 22:13:41
247
原创 LeetCode 11.盛水最多的容器
核心思想就是:在初始化底最大的时候,怎么移动不会遗漏最大值ans,选较小的那个高,往里移动,保证能够保留最大的高,使底一次减1,最后完成对所有可能的底和高的遍历。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。暴力解法会有一部分数据通过不了,这时就要想到能不能避免一些对明知道比现有ans小的s的遍历。轴共同构成的容器可以容纳最多的水。找出其中的两条线,使得它们与。返回容器可以储存的最大水量。
2025-08-22 17:08:40
272
原创 LeetCode 283. 移动零
移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。
2025-08-21 22:23:17
174
原创 LeetCode 128. 最长连续序列
找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。最长数字连续序列是 [1, 2, 3, 4]。哈希表的这种方法,时间复杂度为0(N),空间复杂度过不去。请你设计并实现时间复杂度为。给定一个未排序的整数数组。
2025-08-20 15:54:33
121
原创 LeetCode 1.两数之和
因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。
2025-08-18 20:07:09
285
原创 C++11 跨平台线程池学习记录
在这个示例中,我们定义了一个 ThreadPool 类,并且在构造函数中创建了指定数目的线程。在每个线程中,我们不断地从任务队列中获取任务并执行,直到线程池被停止。在 enqueue() 函数中,我们将任务封装成一个 std::function 对象,并将它添加到任务队列中。
2025-04-20 16:54:09
522
原创 2022年第十四届蓝桥杯C/C++省赛研究生组(前四题)
其中 arr[0]=(In[0],In[1],In[2],In[3],In[4])表示的是输入数据,对于某个 arr[i][j](i≤0),计算方式为arr[i][j]=arr[i−1][j] op arr[i−1][j+1],其中 op 表示的是将 arr[i−1][j]、arr[i−1][j+1] 作为输入,将 arr[i][j] 作为输出的那个门电路, 与门、或门、异或门分别对应于按位与 $(&) 、$ 按位或(1) 、按位异或 (^) 运算符。,并检查最终结果是否为。
2025-03-08 23:09:49
1032
原创 摩尔投票法-解决数组中的多数元素问题
通过维护一个候选元素和计数,遍历数组时,如果当前元素与候选元素相同,则计数加1,否则计数减1。当计数减到0时,更换候选元素。由于多数元素的数量超过一半,最终剩下的候选元素一定是多数元素。O(n),只需要遍历一次数组。O(1),只使用了常数级别的额外空间。
2025-03-03 15:37:47
130
原创 2019年第十届蓝桥杯C/C++省赛研究生组(前八题)
Solve: result: 看到题目中提到1≤N≤2000000000,F[i]/F[i+1]会趋近于黄金分割,所以需要从小到大去试,N为多大时,结果就不再变了,试出来N=20时,后八位小数就不变了,故,分成两段来输出结果。小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362,立方和是 400816。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
2025-02-26 22:29:27
855
原创 蓝桥杯 C/C++A组2013年省赛 (前七题)
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210。仔细观察,203879 是个6位数,并且它的每个数位上的数字都是不同的,并且它平方后的所有数位上都不出现组成它自身的数字。比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。小明参加了学校的趣味运动会,其中的一个项目是:跳格子。在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年 12月15 日。具有这样特点的6位数还有一个,请你找出它!
2025-02-19 20:05:41
411
原创 浦语提示词工程实践
Prompt是一种用于指导以大语言模型为代表的生成式人工智能生成内容(文本、图像、视频等)的输入方式。它通常是一个简短的文本或问题,用于描述任务和要求。Prompt可以包含一些特定的关键词或短语,用于引导模型生成符合特定主题或风格的内容。例如,如果我们要生成一篇关于“人工智能”的文章,我们可以使用“人工智能”作为Prompt,让模型生成一篇关于人工智能的介绍、应用、发展等方面的文章。Prompt还可以包含一些特定的指令或要求,用于控制生成文本的语气、风格、长度等方面。
2024-10-05 20:40:53
1923
原创 8G 显存玩转书生大模型 Demo
LMDeploy 已经支持了 InternLM-XComposer2 系列的部署,但值得注意的是 LMDeploy 仅支持了 InternLM-XComposer2 系列模型的视觉对话功能。LMDeploy 也已经支持了 InternVL2 系列模型的部署,让我们一起来使用 LMDeploy 部署 InternVL2-2B 模型。接下来,我们使用 LMDeploy 启动一个与 InternLM-XComposer2-VL-1.8B 模型交互的 Gradio 服务。在输入开发机名称后,点击创建开发机。
2024-10-05 16:04:57
1721
原创 书生大模型全链路开源体系学习记录
模型训练是基于一个迭代的过程,通过当前模型进行智能评估过滤数据生成预训练数据从而得到更好模型,加速能力提升。(数据质量推动模型性能)开源工具体系:覆盖数据到预训练、微调、部署和评测等全流程,如InternLM-Train、XTuner、LMDeploy等。性能评测与差距:大模型整体能力仍有提升空间,尤其在理科能力上,中文场景下国内模型表现出色。推理能力领先,综合推理能力领先社区开源模型,相比前代也提升百分之二十。数据集:提供丰富多样的数据,支持数据清洗、安全处理和公开使用。和推理服务,与评测工具无缝对接。
2024-10-03 21:05:35
489
原创 Git基础学习
git clone https://github.com/MrCatAI/Tutorial.git # 修改为自己frok的仓库。帮助团队成员有效地管理和同步代码,避免工作冲突,确保项目的顺利进行。首先,确保你当前处于你想要配置的 Git 仓库的目录中。touch ./data/Git/task/camp3_5386.md # 修改为自己的问卷ID。每个指令都有其特定的用途和场景,详细的使用方法和参数可以通过命令行的帮助文档(在Git的日常使用中,下面四步曲是常用的流程,尤其是在团队协作环境中。
2024-10-03 17:26:18
771
原创 python环境配置
当你刚开始学习Python编程时,可能会遇到代码不按预期运行的情况。这时,你就需要用到“debug”了。简单来说,“debug”就是能再程序中设置中断点并支持一行一行地运行代码,观测程序中变量的变化,然后找出并修正代码中的错误。而VSCode提供了一个非常方便的debug工具,可以帮助你更容易地找到和修复错误。
2024-10-02 22:29:05
763
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人