- 博客(5)
- 收藏
- 关注
原创 算法通关村第三关白银--双指针的妙用(Java)
原地移除所有数值等于 val 的元素:LeetCode27.给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。要求:不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。:在最坏情况下left和right各遍历一次数组(没有元素等于val的情况下)
2023-11-07 23:02:08
229
原创 算法通关村第三关--不简单的数组增删改查(Java)
例如 int[] arr = {1,2,3,0,0,0};优化代码 - -> 当数组为递增时,此时查找如果当前位置元素比目标值更大时就停下来。在数组的首部,尾部和中间位置插入元素。找到目标元素,从目标元素开始后继元素覆盖前继元素。,size代表存放元素个数。
2023-11-01 23:08:52
338
原创 算法通关村第一关--链表经典问题之合并有序链表笔记(Java)
简化上面的代码:当list1与list2的值相等时,先接上list1或者list2的值,那么list1或者list2的指针就会指向下一位,再次比较时list1与list2的值并不相同,下面为简化的代码。2. 递归的循环结束条件->当list1为空时,返回list2,否则相反。1.新建一个链表,遍历两个链表,将最小的节点接到新的链表上。2.将链表节点拆下来,逐个合并到另一个链表上。3. 函数的等价关系式->将子链表先合并。只要将前两个链表合并成功,后面就好写了。1. 函数要实现的功能->链表合并。
2023-10-31 23:13:05
495
原创 算法通关村第二关--终于学会链表反转了(Java)
head.next.next = head变成4->3->4->3->4->3……与创建虚拟节点相比,直接操作链表的方法是在开始的时候创建prev指针代替虚拟节点。2. 递归的循环结束条件->当链表为空表或者只有一个节点返回head…依次循环,当cur为空时,返回ans链表,即为反转之后的链表;在代码的体现上ans.next = prev。3. 函数的等价关系式->将子链表先反转。1. 函数要实现的功能->反转链表。这个时候head为4->3。
2023-10-30 21:30:39
434
原创 算法通关村第一关--基于Java构造链表
链表是一种基础的数据结构,其中数据呈线性排列。**链表中一个节点只能有一个后继。**- 单链表- 双向链表。
2023-10-28 19:10:10
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人