class Solution {
public:intmaxDistance(vector<int>& nums1, vector<int>& nums2){int res =0;for(int i =0, j =0; i < nums1.size(); i ++){while(j < nums2.size()-1&& nums2[j +1]>= nums1[i]) j ++;
res =max(res, j - i);}return res;}};
二分法
class Solution {
public:intmaxDistance(vector<int>& nums1, vector<int>& nums2){if(nums1.size()> nums2.size())maxDistance(nums2, nums1);//确保nums1比nums2数据少int res =0;for(int i =0; i < nums1.size(); i ++){int l = i, r = nums2.size()-1;int flag = false;while(l < r){int mid = l +(r - l +1)/2;if(valid(i, mid, nums1, nums2)){
l = mid;}else r = mid -1;}
res =max(res, l - i);}return res;}
bool valid(int i,int j, vector<int>& n1, vector<int>& n2){return(i <= j && n1[i]<= n2[j]);}};