Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int minAbsoluteSumDiff(vector<int>& nums1, vector<int>& nums2) {
- long long int ans, diff, e, sz, low, high;
- long long int mod = 1000000007LL;
- vector<int> v;
- ans = 0;
- sz = nums2.size();
- for(int i=0; i<sz; i++){
- diff = abs(nums1[i]-nums2[i]);
- ans = (ans+diff);
- v.push_back(diff);
- }
- long long int nans = ans;
- sort(nums1.begin(), nums1.end());
- for(int i=0; i<sz; i++){
- high = lower_bound(nums1.begin(), nums1.end(), nums2[i])-nums1.begin();
- low = high-1;
- if(low>=0 && low<sz){
- e = nums1[low];
- diff = abs(nums2[i]-e);
- nans = min(nans, (ans-v[i]+diff));
- }
- if(high<sz && high>=0){
- e = nums1[high];
- diff = abs(nums2[i]-e);
- nans = min(nans, (ans-v[i]+diff));
- }
- }
- return (nans%mod);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement