自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 代码随想录栈和队列专题day18扫尾

1.哈希+优先级队列:哈希表map来存储出现的次数,使用小顶堆把出现次数小于K的元素弹出。1.单调队列:利用单调队列求每个滑动窗口内的最大值,每次直接弹出单调队列的首元素就行了。

2024-01-29 16:59:10 385

原创 代码随想录栈和队列专题二刷复盘day17

栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。队列中先进先出的数据结构,同样不允许有遍历行为,不提供迭代器,SGI STL中队列一样是以deque为缺省情况下的底部结构,也可以指定list为其底层实现,所以STL队列也不被归类为容器,而被归类为container adapter(容器适配器)1.栈的拿手好戏:遍历整个字符串,如果栈为空或者元素不匹配,就把元素存入栈中,如果元素匹配,就弹出栈的匹配元素,最后将栈输出,并反转整个结果。

2024-01-27 20:09:41 1148

原创 代码随想录双指针专题二刷

双指针专题 就是把前面几个专题的部分使用到双指针的题目进行挑选。

2024-01-26 18:53:47 472 1

原创 代码随想录刷题 双指针

明天开始双指针专题复盘和项目复盘!复盘了前几天刷的代码随想录专题。

2024-01-25 14:50:59 524

原创 代码随想录字符串专题复盘day15

KMP算法KMP算法的经典思想就是:当出现字符串不匹配的时候,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配前缀表next数组就是一个前缀表前缀表是用来回退的,它记录了模式串与主串不匹配的时候,模式串应该从哪里开始重新匹配前缀表的任务是当前位置匹配失败,找到之前已经匹配上的位置,再重新匹配。前缀表用来记录下标i之前的字符串中,有多大长度的相同前缀后缀使用next数组来匹配1.初始化2.处理前后缀不相同的情况3.处理前后缀相同的情况。

2024-01-19 23:13:28 782 1

原创 代码随想录哈希表专题扫尾+链表专题二刷复盘day13,day14

给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 "a1b2c3",函数应该将其转换为 "anumberbnumbercnumber"。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。1.首先反转整个字符串,然后搜索空格删除空格,此时可能会遇到多个空格的情况,必须删除保证只存在一个空格,最后反转每个单词。

2024-01-18 16:58:10 513 1

原创 代码随想录哈希表专题二刷day12

1.哈希表:使用key-value结构的哈希表,其中key对应a+b的值,value对应a+b出现的次数,遍历数组1和2,找到a+b,遍历数组3和4,找到c+d=0-(a+b),将对应的value存入结果。2.双指针法:一次for循环遍历整个数组,然后首位双指针,一个指向i后面的元素,一个指向最后,最后进行去重操作。1.哈希解法:两层for循环就可以确定a和b的数值了,但是需要进行剪枝的操作,最后在哈希表中寻找0-a-b。1.双指针:两层for循环遍历数组,然后左右双指针。

2024-01-16 17:02:24 521 1

原创 代码随想录哈希表二刷day11

1.哈希表:首先遍历第一个数组,并在哈希表中记录第一个数组中的每个数字以及对应出现的次数,然后遍历第二个数组,如果在哈希表中存在这个数组,则将该数字添加到答案,并减少哈希表中该数字出现的次数。每次比较两个指针指向的两个数组中的数字,如果两个数字不相等,则将指向较小数字的指针右移一位,如果两个数字相等,将该数字添加到答案。,请你以数组形式返回两数组的交集。1.滑动窗口:找到s和t的长度,然后开始遍历s,首先判断第一个i=0的状态,然后每次循环把上一个状态减去,判断是否为异位词,把下标存入。

2024-01-15 21:30:13 448

原创 代码随想录二刷哈希表day10

本题的核心理解:首先发现是一个二维数组,所以数据结构的选择是unordered_map,这是一个key-value结构的哈希表,细节在于把判断相同的条件作为key,相同的元素存入该key的value。当需要使用集合来解决哈希问题的时候,优先使用unordered_set,因为他的查询和增删效率是最优的,如果需要集合是有序的,那么就用set,如果要求不仅有序还要有重复数据的话,就用multiset。底层实现红黑树,有序且数值不可以重复,不可以更改数值。底层实现哈希表,无序且数值不可以重复,不可以更改数值。

2024-01-13 23:58:52 1296 1

原创 代码随想录二刷复盘day09

昨天休息 没有刷题 看繁花去了 感觉真好看吧!

2024-01-12 21:59:42 705 1

原创 代码随想录链表章节二刷day08

2.快慢指针法:从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果fast和slow指针在途中相遇,说明这个链表有环 经过推到发现:从头节点出发一个指针,从相遇节点也出发一个指针,这两个指针每次直走一个节点,那么当这两个指针相遇的时候就是环形入口的节点。1.虚拟头节点+双指针:快慢指针同时指向链表的虚拟头节点,让快指针向后移动n位,那么此时,当快指针指向链表结尾的时候,慢指针指向的就是倒数第N个节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。

2024-01-10 17:31:21 1124

原创 代码随想录链表专题复盘,二刷day07

节点的构造函数(不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值)2.虚拟头节点,设置一个虚拟头节点,记得初始化值,初始化值之后就不需要判断该虚拟头节点了,最后记得删除头节点。双链表:每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点,双链表既可以向前查询又可以向后查询。单链表:一个数据域,一个指针域(存放指向下一个节点的指针),最后一个节点的指针指向null。删除节点(删除D节点,只要将C节点的next指针指向E节点,然后手动释放D节点的内存空间)给你一个链表的头节点。

2024-01-09 17:30:52 525

原创 代码随想录刷题复盘日记day06

1. 哈希法:用数组做哈希,首先将数组中的元素存入哈希数组中,然后遍历arr[i]的所有可能取值,如果这个数之前没出现过,return true;1. 暴力解法:首先把奇数存入奇数数组,把偶数存入偶数数组,最后把奇数数组和偶数数组存入结果数组。2.在一个数组上操作,如果在偶数位遇到奇数,那么就在奇数位找一个偶数存入偶数位。至此艺术已成,全部的数组章节已经结束了,但是今天有点不舒服,早点休息了。是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为。

2024-01-08 19:52:18 477

原创 代码随想录刷题复盘日记day05

1. 模拟算法:模拟数组上行 从左到右,右列从上到下,下行从右到左,左列从下到上,将螺旋数组存入一维数组,循环控制变量注意和螺旋矩阵II的区别。1.排序+哈希映射:用新数组把原来数组存入,然后排序,排序的下标就对应有多少小于当前数字的数字,将其存入哈希表。1. 模拟算法:填充上行从左到右,填充右列从上到下,填充下行从右到左,填充左列从下到上。1. 双指针:左右指针查找是否有左右相等的或者不满足山脉条件的数。,请你统计数组中比它小的所有数字的数目。,返回矩阵中的所有元素。以数组形式返回答案。

2024-01-07 15:28:18 695 1

原创 代码随想录day03,day04

1.滑动窗口+哈希法:一个快指针一直遍历整个数组,直到发现第三种类型的水果,此时要将原本的第一种水果进行删除(慢指针右移),直到记录的只有两种水果。2.从前向后双指针:从前向后遍历,如果遇到退格符,那么就向后跳一个元素进行比较,然后一次比较每一个位上的元素(我只能说很烦,真撕不出来吧)1.用栈来模拟整个退格删除过程,遇到字符就存入栈中,遇到退格符,就弹出栈的顶部元素。两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回。

2024-01-06 21:46:41 461 1

原创 代码随想录二刷总结复盘 day02

1. 暴力解法:首先一层for循环遍历数组,找到前后相等的两个数,然后用相等数后一个的下一个数把该数覆盖掉,要用后面整个完整数组覆盖该点的数组。2. 双指针:细节点在于不需要完整遍历整个数组,因为最后一个数,在比较前后项的时候已经比较过了,而且赋值的时候也是赋值相等项的后一个。2. 双指针:比较头指针的平方和尾指针的平方,将大的那一个存入新数组的尾部,从新数组的尾部一直慢慢添加到新数组的头部。2. 双指针:快慢指针,快指针遍历整个数组,找到与val值不相等的数,将其存入慢指针指向的数组。

2024-01-04 21:24:59 1044

原创 代码随想录二刷总结复盘 day01

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。本题的重点在于理解题意。查找元素的位置也就是以下三种情况:(1) 查找的元素位置在数组的最左边或者最右边(2) 查找元素在数组内部,但是找不到该元素(3) 查找元素就是数组的内部元素。

2024-01-03 21:03:59 591

原创 2024.1.2

明天开始代码随想录二刷复盘,加油!代码随想录通关一遍!

2024-01-02 21:14:27 350

空空如也

空空如也

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

TA关注的人

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