PTA数据结构编程题7-51,52,53

51

7-51

这道题目总体思路是先遍历两个链表,然后处理剩余数组的元素,最后再把处理结果放入第三个数组中输出即可。

如何遍历两个数组?

用双指针i,j

把小的元素先放入数组中,如果不等长,则是短的链表先走完,此时,同时遍历两个数组这件事情结束。

然后是处理剩余的元素,为什么剩余了?因为长链表还没有走完但是短链表走完了,所以还剩下一些长链表里面的元素没有被处理。

长的链表此时双指针的下标一定还小于数组的大小。由于是非降序数组,则是挨个放入,恰好从小到大排列。

52

7-52

输入部分与上一题一样,这里省略,

直接看核心部分。

还是用双指针来遍历。

由于是非降序数组,当一个数组的元素比另一个数组的元素小的时候,就要把小元素数组下标右移,当两个元素相等时,放入第三个数组中。

53

将输入的数组统一放在一个数组中,然后进行排序,直接可以输出中位数。

源码

相关推荐
weixin_43739821几秒前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
慕y27421 分钟前
Java学习第十六部分——JUnit框架
java·开发语言·学习
peace..1 小时前
温湿度变送器与电脑进行485通讯连接并显示在触摸屏中(mcgs)
经验分享·学习·其他
teeeeeeemo1 小时前
回调函数 vs Promise vs async/await区别
开发语言·前端·javascript·笔记
学不动CV了1 小时前
数据结构---链表结构体、指针深入理解(三)
c语言·arm开发·数据结构·stm32·单片机·链表
软件黑马王子2 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
算法_小学生3 小时前
LeetCode 287. 寻找重复数(不修改数组 + O(1) 空间)
数据结构·算法·leetcode
strongwyy4 小时前
蓝牙墨水屏上位机学习(2)
学习
九皇叔叔4 小时前
(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别
学习
致***锌5 小时前
期权标准化合约是什么?
笔记