04 2025 档案
算法day23 反转字符2
摘要:题目描述 思路:双指针 对于本题,我们可以先求解出我们能够完整遍历的2k的次数,随后再处理余下的长度不足2k的部分。在处理的过程中,我们将左右指针置于要遍历范围的两侧,使指针向中间移动,通过临时变量来辅助字符的互换。 代码如下: string reverseStr(string s, int k) 阅读全文
posted @ 2025-04-30 14:42 sakura430 阅读(25) 评论(0) 推荐(0)
算法day22 反转字符串
摘要:题目描述 思路: 原地倒置即是利用一个临时变量temp,这样做到两个元素的交换,整体比较简单,无论奇偶长度,整体只要循环(length/2)次即可。 代码如下: void reverseString(vector<char>& s) { int len = s.size(); char temp; 阅读全文
posted @ 2025-04-29 09:12 sakura430 阅读(23) 评论(0) 推荐(0)
算法day21 四数之和
摘要:题目描述 思路:双指针 四数之和的求解思路本质上与三数之和没什么差别,只不过这一次我们要嵌套两层for循环,而且要注意返回的条件,现在我们的目标是收集四个元素相加和等于target的子数组,所以我们不会再向之前一样固定在第一个加数大于0时返回,而是要考虑的更多。具体的细节可以参考代码。 代码如下: 阅读全文
posted @ 2025-04-28 14:19 sakura430 阅读(34) 评论(0) 推荐(0)
算法day20 三数之和
摘要:题目描述 思路:双指针 我们先对nums进行排序,随后设置left与right两个指针跟随for循环遍历的内部迭代。这里的关键就是如何去重。我们在判断时要采取(nums[i]nums[i-1])而非(nums[i]nums[i+1]),因为我们要收集的元组并没有要求内部元素不可以重复,而是要求元组不 阅读全文
posted @ 2025-04-27 14:50 sakura430 阅读(31) 评论(0) 推荐(0)
算法day19 赎金信
摘要:题目描述 思路: 本题仍然是要判断我们能否在一个串中找到另一个串的元素,并且本体是允许重复的,所以我们第一时间想到哈希解法。我们创建一个哈希表来收集杂志的字符,然后通过判断这些字符是否满足信中所需要的字符的数目。第一次遍历杂志收集,第二次遍历信判断。 代码如下: bool canConstruct( 阅读全文
posted @ 2025-04-26 17:28 sakura430 阅读(23) 评论(0) 推荐(0)
算法day18 快乐数
摘要:题目描述 思路: 这道题我们试图判断一个数是否符合快乐数的定义。我们可以将其转化为,在判断的n在快乐数算法的演变下转化的数值是否等于1,同时排除掉重复的转化值。那么对于唯一元素的收容的数据结构,我们可以使用集合unordered_set。我们通过在循环中判断sum,并收集sum,最终按照条件的情况返 阅读全文
posted @ 2025-04-25 23:17 sakura430 阅读(29) 评论(0) 推荐(0)
算法day17 四数相加
摘要:题目描述 思路:分治+哈希 如果我们采用暴力的解法,则需要嵌套四层for循环,这里我们优化,将四个数组两两分成一组,每次以两层for循环嵌套,我们的目标是要找出a+b+c+d = 0这样的元组的个数,所以在第一组,我们将可能的a+b添加到哈希表中,随后在第二个二层循环里,我们只需判断-(c+d)= 阅读全文
posted @ 2025-04-22 14:12 sakura430 阅读(22) 评论(0) 推荐(0)
算法day16 两数之和
摘要:题目描述 思路一:暴力for循环 我们可以通过两层for循环嵌套,遍历所有的元素,使其求和判断是否与target相等来操作。 代码如下 vector<int> twoSum(vector<int>& nums, int target) { int len = nums.size(); vector< 阅读全文
posted @ 2025-04-21 19:48 sakura430 阅读(16) 评论(0) 推荐(0)
算法day15 两个数组的交集
摘要:题目描述 思路一:set 对于交集问题,我们很自然的会考虑到收集元素时的唯一性问题,那么自然也会想到数据结构set,它与数学中集合的概念相同,对于存储的元素去重。所以我们可以使用set,这里为了实现效率,可以选择unordered_set,它是由哈希函数映射实现的,查询效率高。我们先将第一个数组赋给 阅读全文
posted @ 2025-04-20 11:09 sakura430 阅读(28) 评论(0) 推荐(0)
算法day14 有效字母的异位词
摘要:题目描述 思路 我们要判断两个字符串是否为异位词,即是要判断这两个字符串中是否出现了相同的字母且对应了相同的出现次数。这里我们可以采用哈希的想法,即以字符串的字母为“值”来映射位序“键”。由于题目中已经说明字符串只会出现小写字母,所以总共可能出现的字母数为26。我们定义一个长度为26的整型数组has 阅读全文
posted @ 2025-04-19 17:59 sakura430 阅读(27) 评论(0) 推荐(0)
算法day13 环形链表
摘要:题目描述 思路:快慢指针 关于检测链表是否有环的问题我们可以将其抽象为一道追击问题。我们设置两个指针,一个快指针,一个慢指针。快指针每一次移动两个步进,慢指针每一次移动一个步进,相当于快指针相对于慢指针每一次移动一个步进,所以快指针一定能够追上慢指针与其相遇。我们假设相遇的位置为meet,环的入口位 阅读全文
posted @ 2025-04-18 20:56 sakura430 阅读(26) 评论(0) 推荐(0)
算法day12 删除链表的倒数第N个节点
摘要:题目描述 思路一:算正序位置删除 链表的倒数第N个元素即是正序(len-n+1),(我们这里假设链表的长度为len),所以我们可以将这题的思路由找倒数转表为找正数的位置。接下来的整个操作就与普通的删除链表节点没有什么大差异。 代码如下: ListNode* removeNthFromEnd(List 阅读全文
posted @ 2025-04-16 14:19 sakura430 阅读(22) 评论(0) 推荐(0)
算法day11 两两交换链表中的节点
摘要:题目描述 思路: 这道题的关键就在于我们在交换两个节点的时候如何正确的保留下一组要处理的节点的位置,不要使链表断开导致丢失陷入死循环或未知情况。处理时我们依旧采用虚拟头节点的操作方式从而统一整个链表的操作流程,这样就可以不用单独考虑头节点的处理情况。在我们首先创建虚拟头节点dummyhead,使其指 阅读全文
posted @ 2025-04-15 22:36 sakura430 阅读(30) 评论(0) 推荐(0)
算法day10 反转链表
摘要:问题描述 思路一:双指针法 对于要反转的链表,我们为了便于操作,可以设置两个指针:pre以及cur,见词知意,这里的pre指针即是cur的前驱指针(当然,反转过后它就是后驱指针),初始时为nullptr,而cur就是当前指针,初始时为head。这里我们在cur存在的判断条件下循环,在整个过程中,每一 阅读全文
posted @ 2025-04-13 20:57 sakura430 阅读(37) 评论(0) 推荐(0)
算法day9 设计链表
摘要:题目描述 思路 整体的思路的话就是增删查三大件,是很常规的一道题。问题在于在leetcode的环境下要自己在类中定义链表结构体。这里比较坑,因为之前的题目基本函数实现所需要的前置条件初始模板都已给出,所以这里可能会让人很疑惑,不知从何下手。由于本题总共涉及到五个函数,所以接下来对链表的初始化以及五个 阅读全文
posted @ 2025-04-13 18:09 sakura430 阅读(46) 评论(0) 推荐(0)
算法day7 开发商购买土地
摘要:题目描述 思路: 在这道题中,我们的目标是要求得行列中划分部分的最小差值。我们的思路即在赋值的过程中对整个矩阵求和,这样我们便得到了整体的和。随后,我们可以通过for循环实现求纵向与横向的总和。最后,到了关键的一步,我们之前获得了整体的和sum,随后获得了行和与列和,这是我们可以有“总和 - 部分” 阅读全文
posted @ 2025-04-09 21:37 sakura430 阅读(41) 评论(0) 推荐(0)
算法day6 区间和
摘要:题目描述 思路 这道题目求区间和,如果在数据规模很低的情况下,我们可以直接for循环遍历所属区间然后求和返回即可,但是考虑到在大规模数据引入的情况下,如果区间的范围很大,则会有比较差的性能表现,所以我们主要介绍采用前缀和求解的方法。前缀和即随着位置后移不断累加当前即之前位置元素之和得到的对应位置的和 阅读全文
posted @ 2025-04-08 20:13 sakura430 阅读(41) 评论(0) 推荐(0)
算法day8 移除链表元素
摘要:题目描述 思路一:无虚拟头节点 首先,由于我们是非虚拟头节点解法,我们第一步就应该处理head -> val == val这样的情况,这里我们在设置判断条件时要确保head非空,并且应该采取循环结构,从而应对head更新后依旧val域等于val的情况。处理完head后,我们创建一个临时指针cur,赋 阅读全文
posted @ 2025-04-07 22:58 sakura430 阅读(37) 评论(0) 推荐(0)
算法day4 长度最小的子数组|滑动窗口
摘要:题目描述 思路:双指针 对于这样的一个正整数数组,我们可以设置两个指针i,j来控制滑动窗口的长度(即本题中子数组的长度),设置一个sum来计算当前窗口内的元素的和,window_length来记录当前的最小窗口的长度。我们以i作为窗口的起始,j指针在循环中生长。通过循环计算sum的值与target进 阅读全文
posted @ 2025-04-06 20:26 sakura430 阅读(30) 评论(0) 推荐(0)
算法day3 有序数组的平方
摘要:问题描述 思路一:暴力解 通过for循环更新nums数组的值,随后对nums数组采用快速排序,最后将其返回。 代码如下 void quick_sort(vector<int> &a,int low,int high){ if(low>=high){ //边界检查 return ; } int i = 阅读全文
posted @ 2025-04-06 16:39 sakura430 阅读(27) 评论(0) 推荐(0)
算法day2 移除元素
摘要:题目描述 思路: 这里主要介绍的是一种采取快慢双指针的思路。我们可以设置快指针fast来获取数组的元素,慢指针slow来获取数组的位置。这样我们采用fast指针的循环对整个数组进行遍历,当当前的fast指向的元素不等于目标元素val时,我们就将fast指向的元素更新到slow指向的位置,随后fast 阅读全文
posted @ 2025-04-06 15:10 sakura430 阅读(22) 评论(0) 推荐(0)
算法day5 螺旋矩阵
摘要:题目描述: 思路: 对于这样的一个旋转矩阵模型,我们在进行赋值的时候,可以盯住每次行坐标不变(纵坐标不变)来进行边界的限制。为了统一,我们在取每一行(列)的区间时采取左闭右开的思想,即每一次行更新(列更新)我们都只计算[begin,end)这样一个范围,这样就可以避免赋值的重复。同时,我们可以设置s 阅读全文
posted @ 2025-04-06 14:45 sakura430 阅读(32) 评论(0) 推荐(0)
算法day1 二分查找
摘要:题目描述: 思路: 二分查找是搜索问题的经典问题。在这道题中,我们已知有序且升序的数组nums,那么我们可以设置三个指针low,mid,high。其中,我们令low = 0,high = nums.size()-1,那么初始的mid即为(low+high)/2。随后我们要设置循环的判断条件,此时就可 阅读全文
posted @ 2025-04-05 20:45 sakura430 阅读(41) 评论(0) 推荐(0)
算法day 0 准备阶段
摘要:本合集的算法问题内容来自leetcode以及代码随想录,顺序上与代码随想录的教学视频顺序一致,作答使用的语言为C++,大佬很强,我很菜,多学多练。 友情链接:: Leetcode:https://leetcode.cn/ B站代码随想录视频:https://www.bilibili.com/vide 阅读全文
posted @ 2025-04-05 19:39 sakura430 阅读(18) 评论(0) 推荐(0)
嵌入式day2 C语言语句组成
摘要:一行代码是由编程语言(也可以是自定义)提供的各种数据结构、关键性质等编写的。以下介绍一些最基本的元素组成。 注释 在程序中,注释用于解释代码,使得代码更容易被理解。注释会被编译器自动忽略,所以任何注释都不会影响程序的输出或执行。C语言拥有两种类型的注释: 1. 单行注释。以//作为开头,作用域为一整 阅读全文
posted @ 2025-04-05 16:39 sakura430 阅读(25) 评论(0) 推荐(0)
嵌入式day1 C语言简介
摘要:简介 对于初次学习编程的学习者们而言,第一门接触到的编程语言一般来说是C语言。其诞生于上个世纪60年代末期的贝尔实验室,被设计为Unix操作系统提供一种高效、灵活的编程语言。可以说,C语言是设计开发Unix操作系统的副产物。随着计算机编程的发展,C语言逐渐完善与稳定,它是当今软件世界的基石,在底层编 阅读全文
posted @ 2025-04-05 15:19 sakura430 阅读(33) 评论(2) 推荐(0)
嵌入式day 0 C/C++ 准备部分
摘要:对于初学习的小伙伴来说,环境搭建的过程是十分重要的,也是我们走上编程路上的第一个考验,为了方便各位小伙伴的学习,这篇随笔记录了一些关于VS环境搭建的内容。 对于大型的c/cpp项目开发,Visual Studio 是比较适合的IDE,其以一个工程项目为单位。 Visual Studio 下载链接: 阅读全文
posted @ 2025-04-05 15:17 sakura430 阅读(92) 评论(0) 推荐(0)