
数据结构与算法
文章平均质量分 88
数据结构的详细介绍
枪兵自古幸运e
这个作者很懒,什么都没留下…
展开
-
数组划分,双指针
代码中,要先让desc == -1,防止数组第一个元素是0,如果arr[cur]不为0,那就让desc++,并且,我们提到,数组左边到desc是非0区,所以如果遍历到的不是0,那么就要放到非0区,而放到非0区的做法就是交换desc后一位元素和当前元素的位置。因此,desc指向的是非零元素的最后一个元素。这个时候分析案例可知,有个特殊情况,当快指针在倒数第二个位置时,慢指针为0的话,此时快指针会走两步,那么快指针就会越界,这种情况下,当我们在复写的时候,末位置的0不需要复写,因为我们处理完这种特殊情况即可。原创 2024-03-24 23:02:40 · 708 阅读 · 2 评论 -
链表精选题集
上面说过,如果改变某一个节点的指向时,那么这个节点之后的可能就会丢失。这道题就按常规思路来解题,我们要想判断两个链表是否相交,那我们就要看他们是否有相同的节点,如果有的话,那么这个节点及其以后的都一样,只是这个节点前的部分不一样,假设有个指针指向节点A,另一个指针指向节点B,如果两个链表相同节点前部分长度相同,那么只需要A,B走相同步数就可以走到相同节点,但是如果长度不一样差了n步,那么我们就可以先让长的链表先走n步,之后两个链表再一起走,如果A==B那么说明两个链表相交,否则不相交。原创 2023-12-30 20:53:23 · 996 阅读 · 4 评论 -
ArrayList和顺序表
ArrayList是Collection的子类,所以arrayList满足第一个条件,arrayList中的元素均是String类型的,所以当传入参数的元素类型是String或者其子类的时候就可以编译成功;ArrayList就类似数组,但为什么还有创建这个类,是因为当我们需要知道并运用这个数组的有效存储元素时,数组是无法满足的(比如数组整体有五个元素的大小,但实际上只存储了三个元素),而且ArrayList当中有很多方法可以使用;但与字符串不同的是,字符串的改变是产生新的对象,常见的有:顺序表,链表。原创 2023-11-28 00:52:15 · 1166 阅读 · 18 评论 -
泛型的详细介绍
第三处,泛型就可以作为一个类型,其类型的决定取决于实例化泛型类时所给的类型,例如MyMap<>中给的是String类型,那么T就代表String类型,给setArray传值的时候也必须传String类型,在实例化MyMap的时候,也就是第五处的<>可以不写类型。数组是一种单独的数据类型,int[],double[],Object[]都是各自独立的数据类型,不同于String,Object数组不存在继承关系,因此无法将int[]类型的数组传给Object[]类型的数组;由基础类型转为包装类型叫做装箱;原创 2023-11-26 14:12:47 · 1002 阅读 · 8 评论 -
时间复杂度和空间复杂度简单介绍
简单认识复杂度即可,配有案例练习,为数据结构做准备原创 2023-11-23 16:23:40 · 116 阅读 · 7 评论