1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #include<iostream> #include<vector> using namespace std; int dis(int a,int b, int c){ return abs(a-b)+abs(c-b)+abs(a-c); } int findMinDistanceTriplet(vector<int> nums1,vector<int> nums2,vector<int> nums3){ int i=0,j=0,k=0; int ans=0x3f3f3f3f; while(i<nums1.size() && j<nums2.size() && k<nums3.size()){ ans=min(ans,dis(nums1[i],nums2[j],nums3[k])); if(nums1[i]<=nums2[j] && nums1[i]<=nums3[k])i++; else if(nums2[j]<=nums1[i] && nums2[j]<=nums3[k])j++; else k++; } return ans; } int main(){ vector<int> a={-1,0,9},b={-25,-10,10,11},c={2,9,17,30,41}; cout<<findMinDistanceTriplet(a,b,c); return 0; }
|