- 博客(13)
- 收藏
- 关注
原创 c++ vector用法
使用vector时,添加元素不能直接用a[i] = i操作。这种方法只能修改已有数据的元素的数据,而不能添加。运用push_back方法添加。
2024-03-08 11:08:25
194
1
原创 VScode配置c++环境
打开后随便编写一段代码,然后点击右上角的运行(第一次可能会运行失败,也可能直接一次就过了,都问题不大,过了就正常用就好,我是因为自己运行不了)然后新建一个c_cpp_properties.json文件(我也不知道这个文件干啥用的,我自己发现没这个也能运行)找一个目录新建一个cProject文件夹,然后在vscode中打开。然后新建一个launch.json文件,其中文件内容如下。里面开始只有一个task.json文件。将task文件中的代码替换为。cmd输入gcc -v。
2024-03-07 21:23:03
379
原创 代码随想录算法训练营day10 P232.用栈实现队列、P225. 用队列实现栈
题目描述:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(pushpoppeekempty):实现MyQueueint pop()int peek()truefalsesizeis empty100pushpoppeekemptypoppeek思路:因为队列是先进先出的顺序,而栈则是先进后出的序列,所以要实现下面功能int pop()int peek()truefalse。
2023-10-19 21:59:59
70
原创 代码随想录算法训练营day09 P28 实现strStr() 、P459 重复的子字符串
使用这个方法有一个注意事项就是需要对 s+s进行一个掐头去尾的操作,防止出现的是原来的两个s。1.暴力解法:编写两个for循环,第一个for循环负责不断读取s字符串里面的字符并存进ss中,当读到 s.size() % s.size() ==0 的时候就进行一次判断,判断n个ss是否可以构成s,如果可以就返回ture,这个方法还可以得到匹配字符串。那么我们就可以定义一个字符串before与after,表示前缀和后缀,然后不断地枚举,直到找到第一个相等的前后缀,就是最小重复子串。卡哥在讲kmp的时候说的。
2023-10-18 22:01:26
64
1
原创 代码随想录算法训练营day 08 | P344.反转字符串、 P541. 反转字符串II、剑指Offer 05.替换空格、P151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须**修改输入数组**、使用 O(1) 的额外空间解决这一问题。思路:利用一个交换值进行交换就好。
2023-10-16 22:12:44
151
1
原创 代码随想录算法训练营day07 P454 四数相加、P383 赎金信、P15 三数之和、P18 四数之和
题目描述:给你四个整数数组nums1nums2nums3和nums4,数组长度都是n,请你计算有多少个元组思路:四数相加,如果使用暴力解法使用四次for循环,时间复杂度为o(n^4)。会超时,则利用map,先循环遍历nums1,nums2,然后得到他们的和以及各个和出现的次数 ,其中用map的key去储存nums1 + nums2 的各个可能情况,用value去储存出现的次数。再循环遍历nums3,nums4,然后找再map中是否存在 0 -( nums3 + nums4)的值。
2023-10-15 22:06:13
102
1
原创 代码随想录算法训练营第六天 P242 有效的字母异位词、P349 两个数组的交集、P202快乐数、P1 两数之和
题目描述:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。**注意:**若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。t思路:创建26个字母的对应表,然后读取字符串,对字符串中出现过的字母进行对应的自增操作,如何对于26个字母的顺序?用zimu[s[i] - ‘a’]既可以一一对应,然后再比较两个字母对应表,如果有不同的就返回false。
2023-10-13 21:39:01
72
原创 代码随想录算法训练营day4 | leetcode P24 交换链表中的节点、leetcode P19 删除列表中的倒数第n个节点、leetcode 面试题02.07 、leetcode P142
定义fast指针和slow指针,初始值为虚拟头结点, fast首先走n + 1步 ,为什么是n+1呢,因为只有这样同时移动的时候slow才能指向删除节点的上一个节点(方便做删除操作),fast和slow同时移动,直到fast指向末尾,删除slow指向的下一个节点。利用双指针,定一个一快慢指针,其中快指针一次移动两个节点,慢指针一次移动一个节点,因为快指针的移动速度是慢指针移动速度的两倍,那么在经过环的时候,在慢指针在环内转了一圈之前,快慢指针必然会相遇一次。从相遇节点 再到环形入口节点节点数为 z。
2023-10-12 16:19:52
150
1
原创 代码随想录算法训练营day03| leetcode P203 移除链表元素、leetcode P707 设计链表、leetcode P206 反转链表
链表看似很难,其实理解了每一个的用法就很简单了,链表主要是对节点进行操作,达到操作目的。
2023-09-18 15:06:31
1253
原创 代码随想录算法训练营第二天| leetcode 977 有序数组的平方、leetcode 209 长度最小的数组、 leetcode 59 螺旋矩阵||
二维数组nums[行][列]如何创建一个二维数组//或者利用容器二分法二分法要注意是左闭右开还是左闭右闭。注意区间的范围。双指针法快慢指针,通过快慢指针在一个for循环实现滑动窗口动态更新窗口模拟循环注意边界以及循环的条件。
2023-09-14 16:45:32
1413
1
原创 代码随想录训练营第一天| leetcode 704 二分查找、 27 移除元素
即判断区间类型,区间类型到底是[left, right] 还是[left,right),用p704举例,如果是 [left , right]的话,则 left = 0, right = nums.size() -1 ,如果是 [left , right) 的话则 left = 0;即当left = right 时在该数组中有没有意义,当nums[right] 存在时,则有意义,反之则无。二分法中的mid有一个需要注意的点 ,计算mid时需要防止溢出,如何防止溢出?2.快慢指针(对等于目标值的元素进行覆盖)
2023-09-12 11:37:52
1450
原创 ubuntu使用常用命令
4.3查看ubuntu的系统源(有三种?focal、bionic、jammy)4.4选择自己合适的源进行更换(删去原来的)3.1先找到自己想要卸载的软件的全名称。3.2然后在终端输入命令删除。4.2使用gedit文件换源。1.查看系统架构信息。4.ubuntu换源。4.1备份系统默认源。
2023-07-02 16:47:49
251
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人