衡水市网站建设_网站建设公司_前后端分离_seo优化
2026/1/21 23:42:44 网站建设 项目流程

题目链接:3727. 最大交替平方和(中等)

算法原理:

解法:贪心

133ms击败11.31%

时间复杂度O(Nlogn)

想要最大可能的交替得分最大,那就要让绝对值大的前面放+,绝对值小的前面放-,那就先按绝对值大小排序,在后半个数组前面放+,在前半个数组前面放-

Java代码:

class Solution { public long maxAlternatingSum(int[] arr) { Integer[] nums=new Integer[arr.length]; for(int i=0;i<arr.length;i++) nums[i]=(Integer)arr[i]; //按绝对值,从小到大排序 Arrays.sort(nums,(a,b)->Math.abs(a)-Math.abs(b)); int n=nums.length; int mid=n/2; int[] mi=new int[n]; int[] ma=new int[n]; for(int i=0;i<mid;i++) mi[i]=-1*nums[i]*nums[i]; for(int i=mid;i<n;i++) ma[i]=nums[i]*nums[i]; long ret=0; for(int i=0;i<n;i++) ret+=(long)ma[i]+(long)mi[i]; return ret; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询