![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
努力学习,努力爱你!
这个作者很懒,什么都没留下…
展开
-
Leetcode(一)两数之和
双层循环 两两相加 等于目标值 返回 即可。如有问题,欢迎指正!原创 2023-12-10 21:14:16 · 471 阅读 · 0 评论 -
——二叉树
在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。如果父节点的数组下标是 i,那么它的左孩子就是 i * 2 + 1,右孩子就是 i * 2 + 2。如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。原创 2023-09-11 14:00:47 · 387 阅读 · 0 评论 -
堆的实现方式——优先级队列
其实就是一个披着队列外衣的堆,因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。而且优先级队列内部元素是自动依照元素的权值排列。那么它是如何有序排列的呢?缺省情况下priority_queue利用max-heap(大顶堆)完成对元素的排序,这个大顶堆是以vector为表现形式的complete binary tree(完全二叉树)。堆每次pop 都是根元素。所有小顶堆最终保留大元素。大顶堆最终保留小元素。也可以利用entry。原创 2023-09-10 14:48:11 · 99 阅读 · 0 评论 -
算法——单调队列
因为头要弹出去 队列中剩下的比他小的也要弹出去 所以从后面开始 从前面开始可能会导致中间某个数大 从而不能保证每个头都是大的。什么是单调队列,想必大家对单调函数还有所印象,单调队列和单调函数类似,一个队列中的元素是递增或者递减的。并没有单调队列,那么如何构建呢,可以通过双端队列Deque 来进行构建。根据题意合适的选择 递增还是递减并过略掉一些不需要的元素。假如数组为 [1,3,1,2,0,5]120 =>输出头为1 并不是最大的。原创 2023-09-10 13:43:44 · 191 阅读 · 0 评论 -
KMP算法
我理解的KMP 算法就是记录前缀与后缀,每当遇到不匹配的时候由于后缀已经被匹配过,所以下次应该跳到匹配过的后缀也就是相应的前缀后面在进行匹配。原创 2023-09-09 13:05:14 · 404 阅读 · 0 评论 -
链表基础知识
/ 结点的值int val;// 下一个结点// 节点的构造函数(无参)// 节点的构造函数(有一个参数)// 节点的构造函数(有两个参数)原创 2023-09-03 19:31:10 · 430 阅读 · 0 评论 -
十大排序算法
其实十大排序算法都数据内部排序,归并排序常用于外部排序。原创 2023-09-02 16:10:40 · 1010 阅读 · 0 评论 -
——滑动窗口
所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。也可以理解为一种双指针的做法。原创 2023-09-01 21:43:28 · 397 阅读 · 0 评论 -
数组——双指针法
提醒:不要老想着用同向双指针,有时候,相向双指针更容易解决问题。用两个同向或者反向的指针来代替两重循环。原创 2023-08-31 16:57:59 · 67 阅读 · 0 评论 -
数组——二分查找
二分查找的方法时间复杂度为o(logn)因为一直除2的操作,假如查找了k次,那么2^k为n。每次mid =左加((右减左)/2)除2操作也可以看做时右移一位。每次mid=左加((右减左)/2)除2操作也可以看做时右移一位。否则mid 值大于目标让右等于mid+1。否则mid 小于目标让左等于mid+1。否则mid 小于目标让左等于mid+1。否则mid 值大于目标让右等于mid。如果左小于等于右则继续查找。如果mid 值为目标则返回。如果mid 值为目标则返回。当左大于等于右时循环结束。原创 2023-08-30 14:42:32 · 122 阅读 · 0 评论 -
算法第一天——数组理论基础
但是在java中,java的内存的空间地址不允许用户访问,完全交给虚拟机寻址。所以不知道java中的内存地址是否连续,通过hashcode打印的值也是经过处理的。ArrayList的底层实现是数组,是一个顺序容器,存放的数据和放进去的顺序相同。但是没有实现同步,有一个容量限制表示数组的实际大小,当容量不足时,会自动增大数组的大小。针对数组而言,最大的优点是存取速度快,其缺点包括插入和删除的效率非常低。double 符号位1位 阶码11位 尾数为52位 阶码也有符号位称为阶符。符号位+指数位+尾数位。原创 2023-08-30 10:41:11 · 263 阅读 · 0 评论 -
Leetcode 2两数相加
按照链表的顺序去取出val 进行相加 如果链表长度不同则后补0。如有问题,欢迎指正!原创 2022-10-09 12:34:11 · 111 阅读 · 0 评论 -
Leetcode(一)两数之和
双层循环 两两相加 等于目标值 返回 即可。如有问题,欢迎指正!原创 2022-10-04 21:06:30 · 147 阅读 · 0 评论