题目:
4. 寻找两个正序数组的中位数
给定两个大小分别为 m
和 n
的正序(从小到大)数组 nums1
和 nums2
。请你找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n))
思路:
因为时间复杂度的要求,所以应该考虑二分法,一开始独立思考的时候,判断完第一次中间的大小之后该如何处理
可以定义左指针,在每一次二分法找到的数值比较,不需要的,也就是此时比较小的值的前面不考虑,也就是对应数组的指针移动,对新的数组进行处理
要求两个数组一共移去的指针是总数的一半
代码:
我这个总是超出时间限制,有大佬可以看看运行是否可以,并且怎么能够在时间限制内
改进的话有什么好的方法,感觉我自己设计的参数比较多
学习心得:
- 每题没有思路的时候,可以用比较小的例子来试试,看有什么办法
- c++是语言,数据结构是办法,对于不同的题,数据结构是前人总结出的经验,帮助我们很快的实现功能