- 博客(12)
- 资源 (1)
- 收藏
- 关注
原创 算法通关村——栈的表达式问题
乘和除,则取顶栈与当前的数字进行计算在入栈。设置当前的符号,如果当前字符是+直接入栈。如果当前是-则已当前数字的相反数入栈。题目:leetCode227。最后将全部结果都出栈加减入栈。题目:leetCode150。
2023-12-29 16:12:31
395
1
原创 白银——栈的经典算法问题
题目:leetCode:20(类似题目:22,32,301,856)题目:LeetCode:155。题目:LeetCode716。
2023-12-15 17:06:17
59
原创 算法通关村第二关——继续讨论数组问题
题目:leetCode:137,现在其他数字均会重复3次,只有一个数字会重复一次。基于三指针的排序算法(还有一种类似于双指针的一次循环)题目:剑指offer,找出数组中超过一半的数字。利用异或+与进行位运算(以后在研究)基于冒泡排序的双指针(快慢指针)题目:leetCode:136。题目:leetCdoe:75。思路:对于该题目有多种思路。思路:总共有三种思路,
2023-10-18 15:16:12
96
1
原创 算法通关村第二关——双指针思想及应用
思路:双指针,一个指针负责数组遍历,一个指向有效数组的最后一个位置,注意:可以另slow=1,以减少不必要的操作,并且比较对象变为nums[slow-1]思路:思路跟链表的轮换问题一致,先整个进行反转,然后在反转0-k-1部分和k-length部分,注意K要是除于length的余,思路:1. 利用char数组管理,直接把原来的原始数组的中的空格位置进行替换,如果不能申请额外的空间,则通过双指针进行移动和替换。例子:删除重复元素[1,2,2,2,3,3,3,5,5,7,8],重复元素只保留一个。
2023-10-07 16:58:46
88
1
原创 算法通关村——不简单的数组增删改查
题目:LeetCode:35. 给定一个排列数组和目标值,在数组中找到目标值,并返回索引,如果目标值不存在数组中,则返回他顺序插入的位置。思路:常规思路没什么好说的,关键是空间复杂度低的高阶思路:向后插入,因为两个合并的都是有序数组,所以他们的最大值一定在最后。数组的空间不一定是满的,即size(数据个数的变量)不等于length(数组长度)初始化必须是连续的初始化,中间不可以出现空缺的情况,但是尾部是有空缺的情况。具有相同特征数据元素的一个有限序列,其中所含元素的个数称为线性表的长度。
2023-09-25 16:13:07
58
1
原创 算法通关村第二关——链表返转单括展问题
思路: 可以 使用快慢指针+一半反转的方法来做,快慢指针在向前跑的同时把前面的一半链表进行反转。思路:直接多拿后面一个元素就可以进行两两交换了,具体交换规则和上题的头插法类似。思路:利用头插法和穿针引线法解决,主要是要保存区间外的 节点信息,避免丢失。思路:要进行三次反转,分别将两个链表反转,低位相加然后将结果再次反转。思路:需要将链表反转,从地位开始计算,注意进位的问题。题目:leetCode 92 指定区间反转。题目:LeetCode:369。题目:LeetCode:234。
2023-09-06 18:54:27
61
1
原创 算法通关村第二关——终于学会链表反转了
创建一个虚拟头结点,并在虚拟头结点直接逐个插入链表节点。题目:LeetCode206,链表反转。直接在链表上操作,用双指针,分别操作。(额外)利用递归进行链表反转。思路:链表反转有两种思路。
2023-08-03 15:16:18
29
原创 算法通关村第一关—链表黄金挑战笔记
题目:LeetCode141,LeetCode142。定义:每个节点都包含指向前驱节点和后驱节点的指针。题目:主要解决的是双向链表的增删改查。
2023-08-02 17:49:54
108
1
原创 算法通关村第一关—链表经典问题之白银挑战笔记
思路:思路有很多,先说一个普遍的思路,先把链表全部反转,然后在分别反转前k和后面的n-k部分分别反转,第二种思路是利用上题的双指针,先找倒数k(这个k是 k%len的余,因为每当k==len时,说明全部旋转回了原来的位置)的位置,之后在把倒数k的子链表拼接在头部就行了,思路:利用双指针中的快慢指针,快指针走两步,慢指针走一步,那么只要快指针到尾节点,慢指针必然在中间节点,如果遇上了偶数的链表,则有两个中间节点,一般约定俗成是返回最后一个。思路:这个是最基础的比较和增删改查,重点在于如何优雅的增删改查。
2023-07-31 14:26:50
108
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人