- 博客(31)
- 收藏
- 关注
原创 算法学习-Day 23-Aug.03.2025
该题确定终止条件时,可以明确,终止只有两种情况:sum大于target和sum等于target只有当sum == target时,才需要收集结果单层for循环依然是从startIndex开始,搜索candidates集合,但是由于可重复读取,不需要i+1剪枝优化的地方在于,如果是加和过后大于target,就不进行递归了,直接break。
2025-08-04 04:56:37
278
原创 算法学习-day 22-AUG.02.2025
处理的过程就是path收集每次选取的元素,相当于树形结构里的边,sum来统计path里元素的和。这道题的不同之处在于横向for循环的临界值是固定的i<=9。
2025-08-03 05:12:31
217
原创 算法学习-Day 22-Aug.01.2025
这个题依旧使用递归构建树,由于每次要返回一个结点来构建,因此第一步中,递归函数的返回值肯定是TreeNode,其次是确定停止的条件,当left>right时,证明已经遍历完毕了。最重要的是确定单层递归逻辑。
2025-08-02 06:20:33
203
原创 算法学习-Day 21-JUL.31.2025
首先从思路上这个题不用递归,只需要在二叉搜索树中寻找,找到一个合适的空位插入即可。首先是找到一个合适的空位,这个空位的父结点的pre,遍历过程中保证root!=null,如果当前root.val大于val就把root往左走,反之就往右走,注意进入循环的时候就把root赋值给pre。找到合适的位置之后,判断一下这个值该插入到pre的左边还是右边即可。
2025-08-01 04:59:28
272
原创 算法学习-Day 20-Jul.30.2025
二叉搜索树有一个特点是中序遍历的结果就是一个从小到大的有序数组,因此采取中序遍历然后维护一个result变量来存储最小值即可。
2025-07-31 11:39:05
312
原创 mysql学习笔记
事务Transaction是一组操作的集合,这些操作要么全部执行成功,要么全部不执行,他们作为一个原子单位提交或者回滚,用来保证数据的完整性和一致性。
2025-07-17 23:23:34
1236
原创 算法学习-Day 18-JUL.09.2025
第一步:如果数组为0,说明是空结点第二步:如果不为空,那么取后序数组最后一个元素作为节点元素第三步:找到后序数组最后一个元素在中序数组的位置,作为切割点第四步:切割中序数组,切成中序左数组和中序右数组第五步:切割后序数组,切成后序左数组和后序右数组第六步:递归处理左区间和右区间。
2025-07-10 09:02:47
183
原创 算法学习-Day 17-JUL.07.2025
核心思路为:判断当前结点是否为叶子结点,然后判断传进来的targetSum是否和结点值相同,如果相同,说明找到了,返回true,如果没有找到,返回false。java中的list是引用类型,把当前的path加入res,但是path是共享引用,接下来的递归还会修改他,导致res中的内容也被修改,所以要拷贝一份副本进去。在做这道题的时候,肯定会纠结递归函数的返回类型,由于要找到所有的合适的路径,因此需要遍历整颗树,但是不需要递归处理返回值,所以递归函数不需要返回值。(如 List、TreeNode),传的是。
2025-07-08 09:24:26
279
原创 算法学习-Day16-JUL.06.2025
后序遍历,第三步的处理逻辑是该结点的左叶子之和为左子树的左叶子之和+右子树的左叶子之后。判断是否为左叶子就是 结点的左叶子不为空,但是结点左叶子的左叶子的左右叶子均为空。
2025-07-07 11:16:34
175
原创 JUC并发编程学习笔记 - JUN.11.2025
《Java多线程与并发编程核心知识摘要》 本文系统梳理了Java多线程与并发编程的核心概念。主要内容包括: 进程与线程基础 进程作为资源分配单位,线程作为CPU调度单位 线程状态转换(新建、就绪、阻塞、等待、终止) wait与sleep的四大区别:所属类、锁释放、使用范围、异常处理 线程安全机制 同步控制:synchronized内置锁与Lock接口对比 锁升级过程:无锁→偏向锁→轻量级锁→重量级锁 并发工具:CountDownLatch、Semaphore、FutureTask 原子操作:CAS原理及AB
2025-07-07 04:42:14
985
原创 算法学习-Day15-JUL.05.2025
对于递归的理解一直不是很到位,先考虑BFS的做法,只要碰到叶子结点就返回深度即可。这里需要注意deque的实现是LinkedList和ArrayDeque,不是ArrayList。
2025-07-06 06:44:13
205
原创 算法学习-Day13-June.26.2025
方法一: 递归实现BFS创建一个list,里面每个元素都是一个list,然后递归实现BFS,将元素加到list中方法二:迭代方式--借助队列实现BFS核心思路是维护一个queue来记录每一层有几个结点,然后将这几个结点值加入一个list,再将这几个结点的子结点加入queue,迭代维护。
2025-06-27 10:33:11
336
原创 算法学习-Day12-June.24.2025
解体过程中主要有两种形式的二叉树:满二叉树和完全二叉树。:如果一棵二叉树只有度为0或者为2的结点,并且度为0的结点在同一层,那么这棵二叉树为满二叉树。若深度为k,则有2^k-1个结点。:完全二叉树汇中,出了最底层结点可能没填满外,其余每层结点数都达到了最大值,并且最下面一层的结点都集中在该层最左边的若干位置。若最底层为h层(h从1开始),则该层包含1~2^(h-1)个结点都有可能。二叉搜索树是有序树。若左子树不为空,则左子树上所有节点的值均小于根结点的值。
2025-06-25 06:49:20
309
原创 JVM学习笔记-Jun.15.2025
1. jvm内存模型讲解(腾讯)程序计数器,每个线程都有一个程序计数器,是线程私有的,程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。不会OOM。线程私有,每个方法在执行时都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息,可能会有stackoverflow和oom;类似虚拟机栈,这里主要为虚拟机使用到的Native方法服务,本地方法执行时也会创建栈帧,同时也可能会出现Stackoverflow和oom。
2025-06-22 23:36:47
1041
原创 算法学习-Day9-JUN.18-21.2025-KMP补充版
记录下标i之前(包括i)的字符串中,有多大长度的相同前缀后缀如何构造next数组:1.初始化2.处理前后缀不同的情况3.处理前后缀相同的情况。注意:不管是在主程序中还是构造next数组,必须先处理前后缀不同的情况,然后再处理相同的情况。因为你要先回退不符合的情况。主程序的实现思路和next数组的实现思路基本相同,就是在判断到两字符不同时,使用while循环,将j会退到合理的情况(字符相同)或者为0。
2025-06-19 10:36:21
159
原创 算法学习-Day8-JUN.17.2025
反转字符串,很自然的一个想法就是双指针,一前一后两个指针交换即可,交换完之后left++,right--。
2025-06-18 05:44:46
252
原创 算法学习-Day6-JUN.15.2025
Set只关心结合中有没有这个元素,判断方法为hashSet.contains(i),添加方法为hash.add(i);
2025-06-16 05:04:46
827
原创 算法学习-Day5-JUN.14.2025
链表题收尾!这道题我感觉有难度,看到时基本没有思路。核心点有两个:1.判断是否有换,方法很简单,定义一个指向头的双指针,快指针每次走两格,慢指针每次走一格,如果会相遇,说明有环,接下来找环的入口。如果没相遇,说明没环,返回null;2.如何找到环的入口:这里有两个难点,一. 首先为什么slow走的节点数为x+y而不是x+若干环的长度+y,这里fast的指针速度是slow的两倍,假设他们同时从环形入口节点处出发,slow走一圈,fast走两圈。在实际情况中,slow进入环时,fast一定在环内了,因此在slo
2025-06-15 02:23:27
323
原创 算法学习-Day3-JUN.12.2025
删除节点:将前一节点的next指针指向下下节点 O(1)添加节点:修改next指针的指向 O(1)数组的插入和删除时间复杂度为o(n). 查询为o(1)链表的插入删除时间复杂度为o(1) 查询为o(n)链表的类型有:单链表,双链表,循环链表。
2025-06-13 03:31:33
261
原创 算法学习-Day2-JUN.11.2025
二分法,双指针,滑动窗口,模拟行为与前缀和是最主要的几种方法。java二维数组的内存空间不连续,对于nums[3][4]而言,nums[0],nums[1]...本身都是独立的数组对象,所以内存空间中也不连续。但是nums[0]中的元素地址是连续的,因为是一维数组。c/c++中是连续的。
2025-06-12 05:05:15
816
原创 算法学习-Day1-JUN.10.2025
数组是存放在连续内存空间上的相同类型数据的集合,因此数组下标从0开始,且内存空间的地址连续,在删除或者添加元素时,会改变其他元素的地址。二维数组中,C++是连续分布的,但是java不是。
2025-06-11 06:54:19
352
原创 Rookie Shawn 的算法学习之路
2025.JUN.10. 开始自己的全新学习之旅,万事开头难,先给自己定一个小目标,每天搞定三道题,gogogo 出发喽!
2025-06-11 03:12:03
107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅