- 博客(4)
- 收藏
- 关注
原创 单双指针去除有序顺序表重复元素
遍历至最后两个结点,如果最后两个结点不同,则顺利结束,反之,则最后两个结点重复,并未去除重复结点。(if语句中,相同逻辑后面必须要接上不同逻辑)工作指针P从头遍历,与现在所指相同则从头结点删除下一个结点,不同P指针下移。每次工作结点都和新链表的尾结点比较,重复则下一个,不重复则尾插。相同则F下移,不同则删掉F和S指针中间结点。
2023-09-05 17:47:18
43
1
原创 一维、二维前缀和
以下绿色区域值的总和分别是presum[i-1][j]、presum[i][j-1]的值。黑色区域是presum[i-1][j-1]的值。martix数组为M行N列,则创建M行,N+1列二维数组presum,presum每一行都是martix每一行的一维前缀和。坐标是基于martix数组而来的,所以在presum中,横纵坐标都的+1,比如,计算(0,0,x2,y2),其值为presum[x2+1][y2+1]。在presum中,第i行第j列的数组值是martix数组前i-1行j-1列的元素和。
2023-08-02 19:09:33
36
原创 归并排序-分治递归
将待排原始链表分成大小大致相同的2个新链表,分别对2个子链表进行排序,同理将以上2个链表继续拆分,最终将排好序的子集合合并就会得到一个排好序的集合 即为所求。(参考二叉树后序递归遍历)将已排序的两个子区间R[low..mid]和R[mid+1..high] 归并为一个有序的区间 R[low..high]。生成右边新链表的头结点。此时MSort()算法中,参数head是不带头结点的链表。递归地对两个子区间R[low..mid]和R[mid+1..high] 进行归并排序;
2023-07-25 19:26:49
77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人