网易首页 > 网易号 > 正文 申请入驻

2026-10-16:交替数列的最大元素。用go语言,给定三个整数 n、s、m。现在要构造一个包含 n 个整数的序列,其中第一个数必须等于 s。序列

0
分享至

2026-10-16:交替数列的最大元素。用go语言,给定三个整数 n、s、m。现在要构造一个包含 n 个整数的序列,其中第一个数必须等于 s。序列中相邻数字的大小关系要不断反转:可以从“下降、上升、下降”这样开始,也可以从“上升、下降、上升”这样开始,之后一直交替下去。同时,任意两个相邻数字之间的差距都不能超过 m。如果序列只有一个数字,则它自然满足交替要求。问:在所有满足这些条件的序列中,某个位置上的数字最大可能达到多少?请给出这个最大可能值。

1 <= n, s <= 1000000000。

1 <= m <= 100000。

输入: n = 4, s = 3, m = 5。

输出: 12。

解释:

一个有效的序列是 [3, 8, 7, 12]。

序列中的最大元素是 12。

题目来自力扣3993。

大体步骤如下:

第一步:处理长度为 1 的特殊情况

如果 n 等于 1,那么序列只有一个元素,且题目规定长度为 1 的序列天然满足交替要求。此时首项就是 s,没有其他元素,所以可能出现的最大元素就是 s。代码中直接返回 s。

第二步:确定最优的起始方向

当 n 大于 1 时,序列至少有两个元素。为了让后面的元素尽可能大,应该选择从“上升”开始,而不是从“下降”开始。因为如果一开始就下降,首项 s 会成为第一个峰值,后面的元素从更低的位置开始上升,很难超过从 s 直接上升到最大值的情况。因此最优策略是让第二个元素比 s 大,并且尽量取到允许的最大差距 m。于是第二个元素最大可以取到 s + m。

第三步:安排后续的下降和上升

第二个元素达到 s + m 后,根据交替规则,第三个元素必须小于第二个元素。为了让后面再次上升时能达到更高的峰值,第三个元素不能下降太多,而应该尽可能大。由于是整数序列,并且必须严格小于前一个元素,所以第三个元素最大只能取到第二个元素减 1,即 s + m - 1。

接着第四个元素需要大于第三个元素,并且差距不超过 m。为了让最大值尽可能大,第四次变化应该取到允许的最大上升幅度 m。于是第四个元素可以取到:
第三个元素 + m = (s + m - 1) + m = s + 2m - 1。

继续下去,第五个元素必须小于第四个元素,为了后续能继续上升,它应该取第四个元素减 1,即 s + 2m - 2。第六个元素再上升 m,得到 s + 3m - 2,以此类推。

第四步:总结最大值的增长规律

从第二个元素开始,每经过一次“下降再上升”的完整循环,峰值大约增加 m - 1。更准确地说:

  • • 第二个元素是第一个峰,值为 s + m。

  • • 之后每多一个峰,值就增加 m - 1。

  • • 在长度为 n 的序列中,从第二个位置开始算,峰的位置是第 2、4、6、……个元素。

  • • 这样的峰一共有 n 整除 2 个。

  • • 第一个峰已经包含在 s + m 中,所以还需要额外增加 n 整除 2 再减 1 次。

因此最大可能值为:
s + m + (m - 1) × (n 整除 2 - 1)。

代码中的逻辑正是:如果 n 等于 1,返回 s;否则返回 s + m + (m - 1) × (n / 2 - 1)。这里的 n / 2 是整数除法。

第五步:代入样例验证

题目给出的样例是 n = 4,s = 3,m = 5。

  • • n 不等于 1,所以走一般情况。

  • • n 整除 2 等于 2。

  • • n 整除 2 再减 1 等于 1。

  • • s + m = 3 + 5 = 8。

  • • m - 1 = 4。

  • • 最终结果 = 8 + 4 × 1 = 12。

这正好对应输出 12。一个有效的序列是 [3, 8, 7, 12],其中最大元素是 12。验证过程也符合前面的构造:3 上升到 8,8 下降到 7,7 再上升到 12,每一步的差分别是 5、1、5,都没有超过 m = 5,并且大小关系交替变化。

第六步:复杂度分析

代码中只进行了有限次判断和算术运算,没有任何循环,也没有使用额外的数组或数据结构。

  • • 总时间复杂度:O(1),即常数时间。

  • • 总额外空间复杂度:O(1),即常数空间。

因此,无论 n、s、m 多大,计算最大可能值都只需要常数次操作。

Go完整代码如下:

package main

import (
"fmt"
)

func maximumValue(n, s, m int)int64 {
if n == 1 {
returnint64(s)
}
returnint64(s + m + (m-1)*(n/2-1))
}

func main() {
n := 4
s := 3
m := 5
result := maximumValue(n, s, m)
fmt.Println(result)
}

Python完整代码如下:

# -*-coding:utf-8-*-

def maximum_value(n: int, s: int, m: int) -> int:
if n == 1:
return s
return s + m + (m - 1) * (n // 2 - 1)

if __name__ == "__main__":
n = 4
s = 3
m = 5
result = maximum_value(n, s, m)
print(result)

C++完整代码如下:

  


long long maximumValue(int n, int s, int m) {
if (n == 1) {
return static_cast (s);
}
return static_cast (s) + m
+ static_cast (m - 1) * (n / 2 - 1);
}

int main() {
int n = 4;
int s = 3;
int m = 5;

long long result = maximumValue(n, s, m);
std::cout << result << std::endl;

return0;
}

我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
孙宏斌真“扛造”:贾跃亭坑走165亿,王健林套走700多亿,融创亏掉1100亿,如今再“翻盘”?

孙宏斌真“扛造”:贾跃亭坑走165亿,王健林套走700多亿,融创亏掉1100亿,如今再“翻盘”?

大厂财经社
2026-10-16 01:15:36
泽连斯基与特朗普闹翻后,英国出手了:查尔斯国王亲自接待排面拉满

泽连斯基与特朗普闹翻后,英国出手了:查尔斯国王亲自接待排面拉满

日新说Copernicium
2026-10-15 18:23:17
第三波灾难爆发!日本物价彻底失控,中美不救,日本经济走向绝路

第三波灾难爆发!日本物价彻底失控,中美不救,日本经济走向绝路

观锐器
2026-10-15 17:45:01
就在今天!中方给朝鲜送去重礼,事关两国,中国百姓获好消息

就在今天!中方给朝鲜送去重礼,事关两国,中国百姓获好消息

青青衫书生
2026-10-15 13:31:20
米兰4-0萨尔茨堡红牛,西塞戴帽,贡萨洛建功,泰拉恰诺染红

米兰4-0萨尔茨堡红牛,西塞戴帽,贡萨洛建功,泰拉恰诺染红

懂球帝
2026-10-16 02:39:47
1991年江青自杀,新华社发布了一则公告,共127个字

1991年江青自杀,新华社发布了一则公告,共127个字

年代回忆
2026-10-14 21:53:08
国民党多位司令直言:只有一人能与林彪粟裕抗衡,可惜被自家人废了

国民党多位司令直言:只有一人能与林彪粟裕抗衡,可惜被自家人废了

磊子讲史
2025-12-30 16:37:36
黑龙江省哈尔滨市农业农村局原局长任延辉被查

黑龙江省哈尔滨市农业农村局原局长任延辉被查

新京报
2026-10-15 16:47:23
局势失控,中国邻国发生大事!中央强硬出手,地方派高层遭大清洗

局势失控,中国邻国发生大事!中央强硬出手,地方派高层遭大清洗

面包夹知识
2026-10-15 17:11:20
0-0爆冷!申花球员疑似“吓坏了”?柬埔寨球队动作大,被压着打

0-0爆冷!申花球员疑似“吓坏了”?柬埔寨球队动作大,被压着打

汪星人哟
2026-10-15 22:33:28
时隔7年晋级上海大师赛四强!头号种子兹维列夫2-0横扫9号种子

时隔7年晋级上海大师赛四强!头号种子兹维列夫2-0横扫9号种子

醉卧浮生
2026-10-15 19:40:19
金价风向要变了?大家做好准备!2027年开始,金价或将迎更大调整

金价风向要变了?大家做好准备!2027年开始,金价或将迎更大调整

三农老历
2026-10-15 12:04:40
四年不官宣,这次被拍到同回一处:狗仔到底拍到了什么

四年不官宣,这次被拍到同回一处:狗仔到底拍到了什么

情感大头说说
2026-10-15 07:32:29
回顾:荷兰大臣承认推演过中方所有反制手段,却没料到中方直接暂停东莞芯片出口,欧洲车企当场停摆,这步棋太狠了

回顾:荷兰大臣承认推演过中方所有反制手段,却没料到中方直接暂停东莞芯片出口,欧洲车企当场停摆,这步棋太狠了

林杰论事
2026-10-15 01:10:57
懂车帝回应“黑尊界”传言,一切都反转了!

懂车帝回应“黑尊界”传言,一切都反转了!

财经三分钟pro
2026-10-15 17:00:19
英媒:因凡蒂诺为出售世界杯道歉,但被告知他已不适合领导FIFA

英媒:因凡蒂诺为出售世界杯道歉,但被告知他已不适合领导FIFA

懂球帝
2026-10-15 23:10:11
乐基儿年轻时真漂亮,看曾志伟的眼神就知道了

乐基儿年轻时真漂亮,看曾志伟的眼神就知道了

娱你同欢
2026-09-13 20:22:17
志愿军选帅,唯独没考虑刘伯承,主席一语道破:不是不用是不能用

志愿军选帅,唯独没考虑刘伯承,主席一语道破:不是不用是不能用

纪史行者
2026-10-16 00:35:03
确认不打了!男篮主力锋线拒绝加盟广东队,亚帅痛失侧翼答案?

确认不打了!男篮主力锋线拒绝加盟广东队,亚帅痛失侧翼答案?

绯雨儿
2026-10-15 12:27:21
网红魏莹陪玩案后续:母亲曝不耻原因,连续陪3个大哥:她没离婚

网红魏莹陪玩案后续:母亲曝不耻原因,连续陪3个大哥:她没离婚

阅微札记
2026-10-15 10:11:44
2026-10-16 03:48:49
moonfdd incentive-icons
moonfdd
福大大架构师每日一题
1517文章数 83关注度
往期回顾 全部

科技要闻

核弹院士彭先觉:可控核聚变 不必再等50年

头条要闻

小男孩衣衫不整跟随母亲游荡 官方:其母多次拒绝救助

头条要闻

小男孩衣衫不整跟随母亲游荡 官方:其母多次拒绝救助

体育要闻

五大联赛第二射手,开着11年前的二手车

娱乐要闻

蒋劲夫晒体脂率引关注,家暴史再被扒

财经要闻

洋餐饮的中国生意:红利消退后的集体交权

汽车要闻

年轻人专属的大五座 小鹏MONA L05预售16.98万起

态度原创

手机
亲子
房产
家居
军事航空

手机要闻

特努斯谈早期折叠屏手机:感觉“有点廉价、质量也不怎么样”,苹果早在2011年就开始探索相关技术

亲子要闻

产后抑郁时我做了这个决定,挽救了整个家庭的幸福

房产要闻

湾际藏品 双子登临 | 中旅・馥棠公馆395㎡&517㎡塔尖大平层全球献映

家居要闻

2026建博会(广州) 公装联探展交流活动

军事要闻

朝鲜潜射两种导弹

无障碍浏览 进入关怀版