给定两有序数组,求两数组的中值。要求复杂度为O(m+n),即线性复杂度。
思路1.合并后再求中值,合并的复杂度为O(m+n),求中值复杂度O(1),满足要求,但是占用了额外的空间。需要注意的是,返回的是一个double,但是对int做初等运算得到的结果还是int 所以要进行类型转换。

思路2. 由第一条启发,为什么要完全合并呢?在合并的时候记个数不就可以了吗?只要当计数器跑到了中值直接break就可以省去后面的无意义操作了。

给定两有序数组,求两数组的中值。要求复杂度为O(m+n),即线性复杂度。
思路1.合并后再求中值,合并的复杂度为O(m+n),求中值复杂度O(1),满足要求,但是占用了额外的空间。需要注意的是,返回的是一个double,但是对int做初等运算得到的结果还是int 所以要进行类型转换。
思路2. 由第一条启发,为什么要完全合并呢?在合并的时候记个数不就可以了吗?只要当计数器跑到了中值直接break就可以省去后面的无意义操作了。
本文标题:4.两数组的中值
本文链接:https://www.haomeiwen.com/subject/rrgloqtx.html
网友评论