
class Solution {
final int mod = ; public int minAbsoluteSumDiff(int[] nums1, int[] nums2) {
int []rec=new int[nums1.length]; System.arraycopy(nums1,0,rec,0,nums1.length); Arrays.sort(rec); int maxn=0,sum=0; for(int i=0;i<nums2.length;i++){
int dif=Math.abs(nums1[i]-nums2[i]); sum=(sum+dif)%mod; int idx=binartSearch(rec,nums2[i]); if(idx<nums2.length) maxn=Math.max(maxn, dif-(rec[idx] - nums2[i])); if(idx>0)maxn=Math.max(maxn,dif-(nums2[i]-rec[idx-1])); } return (sum-maxn+mod)%mod; } public int binartSearch(int []rec,int target){
if(rec[rec.length-1]<target) return rec.length; int left=0,right=rec.length-1; while(left<right){
int mid=(right-left)/2+left; if(rec[mid]<target){
left=mid+1; } else right=mid; } return left; } }
讯享网


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/68022.html