代码随想录算法训练营
文章平均质量分 65
算法刷题打卡
我走错地方了
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营| 第五章 栈与队列part01
对栈的简单介绍:在C++中,stack是标准模板库(STL)中提供的一种数据结构,表示栈(stack),它通常用于后进先出(LIFO)的数据管理。: 这个操作用于将元素压入栈顶(即入栈操作)。例如,如果你有一个,你可以通过将整数5压入栈st的顶部。: 这个操作用于从栈顶移除元素(即出栈操作)。例如,如果你有一个非空的栈st,通过st.pop();将移除栈顶的元素。: 这个操作返回栈顶元素的引用,但不会移除它。这可以让你访问栈顶的元素而不改变栈的内容。例如,如果你有一个栈st,你可以通过st.top();原创 2024-07-05 16:25:33 · 899 阅读 · 0 评论 -
代码随想录训练营|第四章 字符串part02
思路:这道题可以分为几个小步骤解决,首先删掉额外的空格,可以依次删除开头的空格,中间多余的空格,结尾的空格。这里有一个小问题,通常在for循环处理数组时,i < s.size()即可,但是这里判断最后一个单词时,因为反转的end值是i-1,所以需要i的值取到s.size(),这里就要加一个等号。这意味着起始迭代器指向我们想要包含的第一个元素,而结束迭代器指向我们想要包含的最后一个元素之后的位置。函数反转[first, last)范围内的元素,其中 last 是要反转的最后一个元素之后的位置。原创 2024-07-04 22:47:50 · 325 阅读 · 0 评论 -
代码随想录第七天|第四章 字符串part01
思路:用双指针法前后交换达到反转字符串的目的。力扣541 反转字符串Ⅱ思路:将看似复杂的条件转换成简单的逻辑,每次循环i+2k,反转前k个字符串,不足k个字符串时反转剩余字符串。原创 2024-06-20 04:51:55 · 240 阅读 · 0 评论 -
代码随想录训练营第六天|第三章 哈希表part02
思路:将前两个数组中的元素两两相加,作为key值,同时统计key值重复出现的次数作为value,存入map数据类型中。然后将后两个数组两两相加,在umap中查找符合条件的key值,如果找到,将value值累加。最后返回count。是 C++ 标准模板库(STL)中的一种关联容器,用于存储键值对,其底层实现是哈希表。这使得可以提供非常快速的查找、插入和删除操作,通常为 O(1) 时间复杂度。以下是一些关于。原创 2024-06-13 18:14:38 · 499 阅读 · 0 评论 -
代码随想录训练营第五天|第三章 哈希表part01
有效的字母异位词。思路:定义哈希数组记录字符串中每个字母的出现次数,每出现一次对映射的下标的值加一。然后再将另一个数组循环遍历,字母每出现一次对哈希数组中映射的下标的值减一。然后整体看数组中的所有值是否清零。原创 2024-06-12 21:45:58 · 261 阅读 · 0 评论 -
代码随想录训练营第四天| 24. 两两交换链表中的节点
思路:使用一个虚拟头节点来简化链表头部的节点交换,同时用一个指针遍历链表,每次检查是否有两个相邻节点可以交换,并调整它们的指针指向顺序,最后返回虚拟头节点的。原创 2024-06-09 19:39:40 · 276 阅读 · 0 评论 -
代码随想录训练营第三天| 203.移除链表元素 707.设计链表 206.反转链表
思路:分两种情况处理:头结点和非头结点。对于删除头结点可以将下一个结点设为头结点或者设置一个虚拟头结点。删除非头结点则将前一个结点指向下一个结点的指针指向下下个结点。原创 2024-06-08 18:40:20 · 499 阅读 · 0 评论 -
代码随想录训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
二分法需要注意区间问题,左闭右闭或者左闭右开前后需要保持一致。原创 2024-06-06 19:35:53 · 607 阅读 · 1 评论 -
代码随想录训练营第一天|704. 二分查找,27. 移除元素
注意临界值,对于左闭右闭区间,while循环中对right和left取等,取等合法。缩小范围时,right=midle-1,left=middle+1,符合左闭右闭。缩小范围时,right = middle,left = middle + 1,符合左闭右开。第一眼思路:依次比较数组中元素与val值,如果有相等,则将该元素后面的元素向前移一位,k值加1,再继续比较并重复前面的操作,直到结束。学习后思路:找中间值与目标值比较,不断缩小查找范围,最后得出结果。这里犯了一个错误,在移动元素的时候,一开始写了。原创 2024-06-05 21:08:49 · 377 阅读 · 1 评论