关注
第四题:
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 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛油的搬砖plog #
18491次浏览 90人参与
# 我在牛爱网找对象 #
175843次浏览 1308人参与
# 一人一个landing小技巧 #
17462次浏览 324人参与
# 找工作的破防时刻 #
19277次浏览 311人参与
# 面试问题记录 #
106463次浏览 1503人参与
# 为什么那么多公司毁约 #
161313次浏览 1201人参与
# 520告白墙 #
10835次浏览 202人参与
# 实习学不到东西怎么办? #
201649次浏览 2091人参与
# 机械人,说说你的烦心事 #
64804次浏览 825人参与
# 腾讯音乐求职进展汇总 #
85264次浏览 475人参与
# 机械应届生薪资要多少才合适? #
21259次浏览 90人参与
# 哪些企业的面试体验感最差? #
23318次浏览 229人参与
# 25届秋招公司红黑榜 #
258932次浏览 1086人参与
# 机械制造岗投递时间线 #
21781次浏览 339人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
27104次浏览 154人参与
# 选完offer后,你后悔学本专业吗 #
42573次浏览 221人参与
# 安利/避雷我的专业 #
70907次浏览 502人参与
# 实习生应该准时下班吗 #
211179次浏览 1361人参与
# 华子oc时间线 #
1182640次浏览 6259人参与
# 工作时那些社死瞬间 #
31973次浏览 215人参与