news 2026/10/14 1:24:16

leetcode_3727 最大平方交替和

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode_3727 最大平方交替和

1. 题意

给你一个整数数组 nums。你可以以任意顺序 重新排列元素 。

数组 arr 的 交替得分 定义为:

s c o r e = a r r [ 0 ] 2 − a r r [ 1 ] 2 + a r r [ 2 ] 2 − a r r [ 3 ] 2 + . . . score = arr[0]^2 - arr[1]^2 + arr[2]^2 - arr[3]^2 + ...score=arr[0]2−arr[1]2+arr[2]2−arr[3]2+...
在对 nums 重新排列后,返回其 最大可能的交替得分。

2. 题解

真的是没有系统的思考过,但是还是做出来了。

大致作法是按绝对值进行排序,绝对值小的当作负数项就好了。

实际上看了题解后,感觉自己太死板了。

其实这个题目就是求

max ⁡ { s ∣ s = ∑ i = 0 n − 1 ( − 1 ) i a i 2 } \max \{ s |s=\sum_{i=0}^{n-1} (-1)^{i}a_i^2\}max{s∣s=i=0∑n−1​(−1)iai2​}

我们可以拆成两个部分

s = ∑ i = 0 ⌈ n / 2 ⌉ x i 2 − ∑ i = 0 ⌊ n / 2 ⌋ y i 2 s=\sum_{i=0}^{ \lceil n / 2\rceil}x_i^2 - \sum_{i=0}^{\lfloor n/2\rfloor}y_i^2s=i=0∑⌈n/2⌉​xi2​−i=0∑⌊n/2⌋​yi2​
其中x i y i ∈ a r r x_i y_i \in arrxi​yi​∈arr

因此我们只需要前面的项尽可能大,后面的项尽可能小就可以使得最终值最大。

最终的代码就不太重要了。

还有一个小细节就是,我们可以先把每个值都先变为平方再去排序;

也可以先按绝对值排序再平方处理。

前一种方法在处理上理简便一些。

2.1 my solution
classSolution{public:staticboolcmp(inta,intb){returnstd::abs(a)<std::abs(b);}longlongmaxAlternatingSum(vector<int>&nums){// 1 2 3 4// 2 1 4 3 = 3 + 7 = 10// 4 1 3 2 = 15 + 5 = 20// 4 2 3 1 = 12 + 8 = 20// -3 -2 -1 1 2 3// 1 1 2 2 3 3// 3 1 3 1 2 2 = 8 + 8 = 16sort(nums.begin(),nums.end(),cmp);intn=static_cast<int>(nums.size());intoff=n/2;longlongans=0;for(inti=0;i<off;++i){ans+=1LL*nums[i+off]*nums[i+off]-nums[i]*nums[i];}if(1==n%2)ans+=nums[n-1]*nums[n-1];returnans;}};
2.2 官解
classSolution{public:longlongmaxAlternatingSum(vector<int>&nums){intn=nums.size();for(auto&num:nums){num*=num;}ranges::sort(nums);return-accumulate(nums.begin(),nums.begin()+n/2,0LL)+accumulate(nums.begin()+n/2,nums.end(),0LL);}};

参考

leetcode

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 1:24:15

高分辨率遥感影像土地覆盖分类:可迁移深度模型实战指南

1. 从一张高分影像说起&#xff1a;为什么土地覆盖分类值得认真做第一次接触高分辨率遥感影像分类&#xff0c;是帮一个做城市绿地调查的朋友处理一批亚米级航拍图。他给的需求很朴素&#xff1a;把图里的建筑、道路、水体、植被、裸地分开就行。我原以为拿个现成的分类模型跑一…

作者头像 李华
网站建设 2026/10/14 1:24:04

Nmap端口扫描实战:从协议原理到企业级资产测绘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:23:48

一维生物面试题:解码信息建模与状态机思维

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:23:47

Flutter Provider状态管理核心原理与实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:23:21

Spring Security 多页面登录:多过滤链拆分登录上下文实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 1:23:20

Cortex-M33任务调度实战:中断优先级、上下文切换与TrustZone优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华