![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
王道考研408数据结构
记录刷题过程中自己与标答不同的代码,供他人参考。
问今域中
考研,不定时记录自己的学习过程和复习知识的笔记
展开
-
王道408数据结构2.2.3综合应用题14题解
三元组(a, b, c),我们假设其中最大数为maxv, 最小数为minv,中间数为midv,其距离为D = maxv - minv + maxv - midv + midv - minv = 2 * (maxv - minv),也就是说,只考虑三元组中的最大数和最小数即可。那么,我们枚举S1中的每个元素xi,并利用二分查找,查找S2、S3中>=xi的最小的数,得到一个以S1元素为三元组中最小数的子答案。同样地,枚举S2、S3,得到另外两个子答案,三个子答案中的最小值即为最终答案。原创 2024-03-02 20:02:49 · 311 阅读 · 0 评论 -
王道408数据结构2.2.3综合应用题13题解
由于数组长度为n,那么数组未出现的最小正整数一定在1~n中,遍历1~n找到b[i]==0即可。有一种例外,即抽屉全满,a(n)的n个数据元素刚好填满了1~n,那么答案则为n + 1。1)利用鸽巢原理(抽屉原理),开一个数组b[n+1],其中b[i]表示i出现的次数。3)时间复杂度On,空间复杂度On。原创 2024-03-01 21:29:46 · 130 阅读 · 0 评论 -
王道408数据结构2.2.3综合应用题12题解
1)注意到a[i] < n,故考虑桶排序。初始化一个数字b[n],其中b[val] = 值为val的元素出现的次数。遍历a来统计b,若次数>n/2,则返回val。3)时间复杂度On,空间复杂度On。原创 2024-03-01 21:13:36 · 137 阅读 · 0 评论 -
王道408数据结构2.3.7综合应用题12题解
由于是有序表,所以利用双指针思想,用p扫描单链表,当扫描到*p结点时,用指针q扫描单链表,直到扫描到第一个不等于*p结点的结点,然后令p->next=此结点,继续用p扫描。原创 2024-03-07 20:49:29 · 191 阅读 · 0 评论 -
王道408数据结构2.2.3综合应用题11题解
每次指针移动后,其指向两序列合并后第cnt小的数。而若cnt == n,则说明此时指针指向第n小的数(答案),即可返回。将双指针分别设置为-1,-1。若a[l+1]原创 2024-03-01 20:44:53 · 287 阅读 · 0 评论 -
王道408数据结构2.3.7综合应用题06题解
用数组装入链表元素后排序,然后再装到新链表L2,最后令L=L2。原创 2024-03-06 20:09:59 · 160 阅读 · 0 评论 -
王道408数据结构2.2.3综合应用题08题解
开一个辅助数组temp[m+n](类型为ElemType),将A[m+n]的元素按题目要求装入temp,再让A.data=temp。原创 2024-02-29 20:09:59 · 162 阅读 · 1 评论