自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

旺仔的博客

一个明朗清澈的程序员

  • 博客(13)
  • 收藏
  • 关注

原创 代码随想录Day15:层级遍历、226.翻转二叉树(优先掌握递归)、101.对称二叉树(优先掌握递归)

针对二叉树的问题,解题之前一定要想清楚究竟是前中后序遍历,还是层序遍历。二叉树解题的大忌就是自己稀里糊涂的过了(因为这道题相对简单),但是也不知道自己是怎么遍历的。这也是造成了二叉树的题目“一看就会,一写就废”的原因。针对翻转二叉树,我给出了一种递归,三种迭代(两种模拟深度优先遍历,一种层序遍历)的写法,都是之前我们讲过的写法,融汇贯通一下而已。这次我们又深度剖析了一道二叉树的“简单题”,大家会发现,真正的把题目搞清楚其实并不简单,leetcode上accept了和真正掌握了还是有距离的。

2023-04-19 19:12:23 408

原创 代码随想录Day14:理论基础、递归遍历、迭代遍历、统一迭代

int val;} };在现场面试的时候 面试官可能要求手写代码,所以数据结构的定义以及简单逻辑的代码一定要锻炼白纸写出来。二叉树是一种基础数据结构,在算法面试中都是常客,也是众多数据结构的基石。本篇我们介绍了二叉树的种类、存储方式、遍历方式以及定义,比较全面的介绍了二叉树各个方面的重点,帮助大家扫一遍基础。说到二叉树,就不得不说递归,很多同学对递归都是又熟悉又陌生,递归的代码一般很简短,但每次都是一看就会,一写就废。

2023-04-19 16:29:38 290

原创 代码随想录Day13: 239. 滑动窗口最大值、347.前 K 个高频元素、栈与队列:总结篇

【今日建议】:一刷至少需要理解思路首先我们在栈与队列:来看看栈和队列不为人知的一面中讲解了栈和队列的理论基础。C++中stack,queue 是容器么?我们使用的stack,queue是属于那个版本的STL?我们使用的STL中stack,queue是如何实现的?stack,queue 提供迭代器来遍历空间么?相信不仅仅是C++中有这些问题,那么大家使用其他编程语言,也可以考虑一下这四个问题,栈和队列是如何实现的。

2023-04-17 22:15:47 260

原创 代码随想录Day11: 20. 有效的括号 、 1047. 删除字符串中的所有相邻重复项 、 150. 逆波兰表达式求值

例如:4 + 13 / 5,这就是中缀表达式,计算机从左到右去扫描的话,扫到13,还要判断13后面是什么运算符,还要比较一下优先级,然后13还和后面的5做运算,做完运算之后,还要向前回退到 4 的位置,继续做加法,你说麻不麻烦!我们在删除相邻重复项的时候,其实就是要知道当前遍历的这个元素,我们在前一位是不是遍历过一样数值的元素,那么如何记录前面遍历过的元素呢?所以就是用栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。

2023-04-17 21:51:43 153

原创 代码随想录Day10:理论基础、232.用栈实现队列、225.用队列实现栈

【今日建议】:,字符串匹配的KMP相对来说是会比较困难,大家之后多多复习就好,另外感兴趣的同学还可以去学学sunday算法,字符串匹配效率也很高哈,另外字符串比较常见的题目还有回文串判断,有兴趣同学可以先行学习~ 今天开始了栈和队列,理解一下栈的特性其实很简单,牢牢记住先进后出即可,常用来括号匹配,另外递归代码通通可以转化为栈实现。从下图中可以看出,栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。

2023-04-17 11:17:58 149

原创 代码随想录Day09:28. 实现 strStr()、459.重复的子字符串、字符串总结 、双指针回顾

【今日建议】:今天是字符串的第二天,今天的KMP大家尽力就好,不要着急一次性看懂,慢慢理解。(另外:字符串系列笔试常考,但是都可以使用库函数,比如C++里的find,reverse,需要熟练使用哦)●28. 实现 strStr():字符串匹配裸题,用来练习KMP算法,还有Sunday算法等等也可以使用(感兴趣去查查看即可)●459.重复的子字符串:求解最长的相等前后缀,然后剩余的长度若能整除总长度则为true;最长前后缀使用KMP算法中的next数组求法进行。

2023-04-14 17:27:43 527

原创 代码随想录Day08:344.反转字符串、541、反转字符串Ⅱ、剑指Offer 05.替换空格、151.反转字符串里的单词、剑指Offer58-Ⅱ.左旋转字符串

此时我们已经反转好多次字符串了,来一起回顾一下吧。在这篇文章344.反转字符串,第一次讲到反转一个字符串应该怎么做,使用了双指针法。然后发现541. 反转字符串II,这里开始给反转加上了一些条件,当需要固定规律一段一段去处理字符串的时候,要想想在for循环的表达式上做做文章。后来在151.翻转字符串里的单词中,要对一句话里的单词顺序进行反转,发现先整体反转再局部反转 是一个很妙的思路。最后再讲到本题,本题则是先局部反转再 整体反转,与151.翻转字符串里的单词类似,但是也是一种新的思路。

2023-04-13 16:41:29 612

原创 代码随想录Day07:454.四数相加II 、 383. 赎金信 、15. 三数之和 、18. 四数之和

两层for循环就可以确定 a 和b 的数值了,可以使用哈希法来确定 0-(a+b) 是否在 数组里出现过,其实这个思路是正确的,但是我们有一个非常棘手的问题,就是题目中说的不可以包含重复的三元组。思路:**本题是使用哈希法的经典题目,**这道题目是四个独立的数组,只要找到A[i] + B[j] + C[k] + D[l] = 0就可以,不用考虑有重复的四个元素相加等于0的情况,所以相对于题目18. 四数之和,题目15.三数之和,还是简单了不少!双指针法在字符串题目中还有很多应用,后面还会介绍到。

2023-04-11 19:13:50 769

原创 代码随想录Day06:哈希表理论基础 、242.有效的字母异位词 、349.两个数组的交集 、202.快乐数、1.两数之和

总结一下,当遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!为什么会想到用哈希表哈希表为什么用map本题map是用来存什么的map中的key和value用来存什么的把这四点想清楚了,本题才算是理解透彻了。

2023-04-10 19:15:59 1293

原创 代码随想录Day04:24.两两交换链表中的节点 、19.删除链表的倒数第N个节点 、面试题 02.07. 链表相交 、142.环形链表II

在这篇文章关于链表,你该了解这些!链表的种类主要为:单链表,双链表,循环链表链表的存储方式:链表的节点在内存中是分散存储的,通过指针连在一起。链表是如何进行增删改查的。数组和链表在不同场景下的性能分析。

2023-04-09 21:44:35 1522 2

原创 代码随想录Day03:链表理论基础 、203.移除链表元素 、707.设计链表 、206.反转链表

/ 单链表 struct ListNode {int val;// 节点上存储的元素 ListNode * next;// 指向下一个节点的指针 ListNode(int x) : val(x) , next(NULL) {} // 节点的构造函数 };【注】:不定义构造函数也是可以的,C++会默认生成一个构造函数,但是这个构造函数不会初始化任何成员变量如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值!

2023-04-08 09:48:16 1786 1

原创 代码随想录Day02:977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

数组:每次遇到二分法,都是一看就会,一写就废这道题目呢,考察数组的基本操作,思路很简单,但是通过率在简单题里并不高,不要轻敌。可以使用暴力解法,通过这道题目,如果追求更优的算法,建议试一试用二分法,来解决这道题目暴力解法时间复杂度:O(n)二分法时间复杂度:O(logn)在这道题目中我们讲到了循环不变量原则,只有在循环中坚持对区间的定义,才能清楚的把握循环中的各种细节。二分法是算法面试中的常考题,建议通过这道题目,锻炼自己手撕二分的能力。

2023-04-07 15:46:40 2053 1

原创 代码随想录Day01:数组理论基础、二分查找、移除元素

这个题目暴力的解法就是两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。,暴力的解法,可以锻炼一下我们的代码实现能力,建议先把暴力写法写一遍。,至于拓展题目可以先不看。,先把 704写熟练,要。

2023-04-05 17:17:12 2447 3

空空如也

空空如也

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

TA关注的人

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