摘要: 8. 单调栈 有个数组arr, 找到arr[i]左面比他小的第一个数, 和右面比他小的第一个数,要求O(N)的时间复杂度. 思路:栈底下栈顶从小到大,栈中存放位置信息,入栈或者出栈的时候可能需要记录信息。 8.1 每日温度 https://leetcode.cn/problems/daily-tem 阅读全文
posted @ 2023-11-09 09:02 犹豫且败北 阅读(16) 评论(0) 推荐(0)
摘要: 7. 双指针、滑动窗口 7.1 含有全部字符的最短字符串 1. 题目 https://leetcode.cn/problems/minimum-window-substring/ 给定两个字符串 s 和 t 。返回 s 中包含 t 的所有字符的最短子字符串。如果 s 中不存在符合条件的子字符串,则返 阅读全文
posted @ 2023-11-09 09:01 犹豫且败北 阅读(43) 评论(0) 推荐(0)
摘要: 6. 归并排序 6.1 基础归并排序 分层两半,而后合并。 重点:MargeSort把比较变成了有序的东西,这个有序的东西可以帮我们做很多事情 6.1.1 递归的归并排序 两个函数: 分:process(arr,L,R) --> 保证[L,R]范围上有序。 public static void mS 阅读全文
posted @ 2023-11-09 09:00 犹豫且败北 阅读(48) 评论(0) 推荐(0)
摘要: 5. 二叉树 5.0 二叉树递归套路 1)假设以X节点为头,假设可以向X左树和X右树要任何信息 2)在上一步的假设下,讨论以X为头节点的树,得到答案的可能性(最重要) 3)列出所有可能性后,确定到底需要向左树和右树要什么样的信息 4)把左树信息和右树信息求全集,就是任何一棵子树都需要返回的信息S 5 阅读全文
posted @ 2023-11-09 09:00 犹豫且败北 阅读(30) 评论(0) 推荐(0)
摘要: 4. 栈和队列 栈:push,pop,peek(返回当前值),empty 队列:add,remove,peek(返回当前值),isEmpty 4.1 双向链表实现栈和队列 4.2 数组实现栈和队列 加一个指针指向某个位置。 队列:环形数组 4.3 最小栈 1. 题目 https://leetcode 阅读全文
posted @ 2023-11-09 09:00 犹豫且败北 阅读(40) 评论(0) 推荐(0)
摘要: 2. 异或算法 2.1 异或基础 0^N == N N^N == 0; 记为无进位相加即可,1+1 = 0; 异或运算满足交换律和结合。 2.1.1 不用额外变量交换两个数 解法:aba = b,abb = a。 2.1.2 找出现奇数次的数 1. 题目 ​ 一个数组中有一种数出现了奇数次,其他数都 阅读全文
posted @ 2023-11-09 09:00 犹豫且败北 阅读(134) 评论(0) 推荐(0)
摘要: 3. 链表 3.1 单向链表和双向链表 单项:有一个next,双向:last,next 3.2 删除链表的倒数第n个结点 1. 题目 https://leetcode.cn/problems/SLwz0R/ 给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head = [1 阅读全文
posted @ 2023-11-09 08:59 犹豫且败北 阅读(23) 评论(0) 推荐(0)
摘要: 1. 基础算法 1.1 基础排序算法 排序分为插入排序(直接插入排序、希尔排序),选择排序(选择排序、堆排序),交换排序(冒泡排序、快速排序),归并排序(归并排序)。 1.1.1 选择排序 找i-n范围内的最小值所在的位置,放到第i位。 public static void selectionSor 阅读全文
posted @ 2023-11-09 08:34 犹豫且败北 阅读(63) 评论(0) 推荐(0)
摘要: 摘要 mybatis的核心流程,主要是对于主线的一个探索。目的是对于整个mybatis流程有个初步的印象 核心流程 核心流程搞懂:主线,涉及的模块不深究。再去基础支持层,再回来核心。 /** * MyBatis API 的使用 * MyBatis 在启动的时候会做哪些操作? * 1.加载全局配置文件 阅读全文
posted @ 2023-10-24 16:47 犹豫且败北 阅读(31) 评论(0) 推荐(0)