![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 92
infinite.?
这个作者很懒,什么都没留下…
展开
-
leetcode刷题笔记9-回溯算法
回溯算法代码随想录刷题笔记代码随想录 (programmercarl.com)回溯算法理论基础回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯与递归的关系:回溯是递归的副产品,只要有递归就会有回溯。回溯函数也就是递归函数,指的都是一个函数。回溯法的效率回溯法是一个纯暴力的搜索,效率并不高。因为回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。那么既然回溯法并不高效为什么还要用它呢?因为没得选,一些原创 2023-04-04 20:34:35 · 248 阅读 · 0 评论 -
leetcode刷题笔记8-二叉树(未完待续)
因为我们在刷leetcode的时候,刷题模式是核心代码模式,节点的定义默认都定义好了,真到面试的时候,需要自己写节点定义的时候,有时候会一脸懵逼刚刚我们说过了二叉树有两种存储方式顺序存储,和链式存储,顺序存储就是用数组来存,这个定义没啥可说的,我们来看看链式存储的二叉树节点的定义方式。int val;//存储对应节点的数值 TreeNode * left;//定义左指针,指向左孩子 TreeNode * right;原创 2023-04-03 09:31:22 · 121 阅读 · 0 评论 -
leetcode刷题笔记7-栈与队列
首先我们在栈与队列:来看看栈和队列不为人知的一面 (opens new window)中讲解了栈和队列的理论基础。C++中stack,queue 是容器么?我们使用的stack,queue是属于那个版本的STL?我们使用的STL中stack,queue是如何实现的?stack,queue 提供迭代器来遍历空间么?相信不仅仅是C++中有这些问题,那么大家使用其他编程语言,也可以考虑一下这四个问题,栈和队列是如何实现的。原创 2023-04-02 09:07:28 · 237 阅读 · 0 评论 -
leetcode刷题笔记6-双指针法
本文中一共介绍了leetcode上九道使用双指针解决问题的经典题目,除了链表一些题目一定要使用双指针,其他题目都是使用双指针来提高效率,一般是将O(n^2)的时间复杂度,降为OnO(n)On。建议大家可以把文中涉及到的题目在好好做一做,琢磨琢磨,基本对双指针法就不在话下了。原创 2023-04-02 09:04:52 · 83 阅读 · 0 评论 -
leetcode刷题笔记5-字符串
字符串是若干字符组成的有限序列,也可以理解为是一个字符数组,但是很多语言对字符串做了特殊的规定,接下来我来说一说C/C++中的字符串。在C语言中,把一个字符串存入一个数组时,也把结束符 '\0’存入数组,并以此作为该字符串是否结束的标志。a[i]!= '\0';i++) {在C++中,提供一个string类,string类会提供 size接口,可以用来判断string类字符串是否结束,就不用’\0’来判断是否结束。i++) {那么vector< char > 和 string又有什么区别呢。原创 2023-04-01 09:14:06 · 294 阅读 · 0 评论 -
leetcode刷题笔记4-哈希表
当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!当需要快速判断一个元素是否出现集合里时,一般来说可以选择哈希表来解决。对于哈希表,要知道哈希函数和哈希碰撞在哈希表中的作用.哈希函数是把传入的key映射到符号表的索引上。哈希碰撞处理。原创 2023-03-31 20:06:33 · 395 阅读 · 0 评论 -
leetcode刷题笔记3-链表
链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链接的入口节点称为链表的头结点也就是head。如图所示:链表的定义C/C++的定义链表节点方式// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数C++可以默认生成一个构造函数。原创 2023-03-30 09:23:55 · 315 阅读 · 0 评论 -
leetcode刷题笔记2-数组
代码随想录刷题笔记代码随想录 (programmercarl.com)数组是存放在连续内存空间上的相同类型数据的集合。数组可以方便的通过下标索引的方式获取到下标下对应的数据。注意:数组下标都是从0开始的。数组内存空间的地址是连续的在删除或者增添元素的时候,就要移动其他元素的地址。C++中:vector和array区别:数组的元素是不能删的,只能覆盖。二维数组在内存的空间地址是连续的么?不同编程语言的内存管理是不一样的C++中二维数组是连续分布的。Java中,没有指针的,同时也不对程序员暴露其元素的地址,寻址原创 2023-03-29 17:01:32 · 366 阅读 · 0 评论 -
leetcode刷题笔记1-算法性能分析
代码随想录刷题笔记。原创 2023-03-29 16:43:20 · 41 阅读 · 0 评论