51
7-51
这道题目总体思路是先遍历两个链表,然后处理剩余数组的元素,最后再把处理结果放入第三个数组中输出即可。
如何遍历两个数组?
用双指针i,j
把小的元素先放入数组中,如果不等长,则是短的链表先走完,此时,同时遍历两个数组这件事情结束。
然后是处理剩余的元素,为什么剩余了?因为长链表还没有走完但是短链表走完了,所以还剩下一些长链表里面的元素没有被处理。
长的链表此时双指针的下标一定还小于数组的大小。由于是非降序数组,则是挨个放入,恰好从小到大排列。
52
7-52
输入部分与上一题一样,这里省略,
直接看核心部分。
还是用双指针来遍历。
由于是非降序数组,当一个数组的元素比另一个数组的元素小的时候,就要把小元素数组下标右移,当两个元素相等时,放入第三个数组中。
53
将输入的数组统一放在一个数组中,然后进行排序,直接可以输出中位数。
源码