关注
第四题:
class Solution {
public:
int find_kth(vector<int>& arr1, vector<int>& arr2, int st1,int ed1,int st2,int ed2,int k) {
int m = ed1 - st1+1;
int n = ed2 - st2+1;
if (m <= 0) return arr1[st2 + k - 1];
if (n <= 0) return arr1[st1 + k - 1];
if(k==m+n) return max(arr1[m], arr2[n]);
if (k == 1) return min(arr2[st1],arr2[st2]);
int mid1 = min(st1 += k / 2 - 1,ed1);
int mid2 = min(st2 += k / 2 - 1,ed2);
if (arr1[mid1] < arr2[mid2]) {
return find_kth(arr1,arr2,mid1+1,ed1,st2,ed2,k-(mid1+1-st1));
}
else return find_kth(arr1, arr2, st1, ed1, mid2+1, ed2, k - (mid2 + 1 - st2));
}
int find_kth(vector<int>& arr1, vector<int>& arr2, int k) {
// write code here
int m = arr1.size();
int n = arr2.size();
if (k == m + n) return max(arr1[m],arr2[n]);
return find_kth(arr1, arr2, 0, min(m-1, k), 0, min(n-1, k), k);
}
};
查看原帖
1 评论
相关推荐
10-19 15:33
蚌埠坦克学院 算法工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
9878次浏览 112人参与
# 产品面经 #
238121次浏览 2099人参与
# 0经验如何找实习? #
22007次浏览 379人参与
# 你开始找寒假实习了吗? #
12468次浏览 190人参与
# 你今年做了几份实习? #
7061次浏览 111人参与
# 你找工作经历过哪些骗局? #
7759次浏览 123人参与
# 说说你知道的学历厂 #
369014次浏览 1323人参与
# 大学最后一个寒假,我想…… #
70912次浏览 717人参与
# 25年找工作是什么难度? #
12903次浏览 133人参与
# 实习越久越好,还是多多益善? #
15239次浏览 151人参与
# 字节出了豆包coding模型 #
6187次浏览 59人参与
# 面试尴尬现场 #
202711次浏览 797人参与
# 一上班就想____,这正常吗? #
4007次浏览 79人参与
# 大家每天通勤多久? #
63519次浏览 408人参与
# 如何KTV领导 #
80272次浏览 521人参与
# 大厂面试初体验 #
82659次浏览 376人参与
# 如何缓解入职前的焦虑 #
242623次浏览 1432人参与
# 担心入职之后被发现很菜怎么办 #
263112次浏览 1113人参与
# 你认为工作的意义是什么 #
222897次浏览 1406人参与
# 刚工作,应该先搞钱or搞成长? #
5765次浏览 76人参与
阿里云工作强度 710人发布