模拟题,对几种情况进行分类讨论
对于数据小的情况下直接暴力模拟 数据大的情况下枚举中间点进行交换
if (i - 1 >= 0) ans = max(ans, (long long)a[i] * a[i - 1]);
if (i - 2 >= 0) ans = max(ans, (long long)a[i] * a[i - 2]);
给定一个长度为 n 的整数序列,定义序列的「冲击值」为所有相邻两数乘积的最大值。 你可以选择序列中任意一对相邻元素并交换它们的位置(必须恰好交换一次)。 请问,经过操作后,序列冲击值最大可以是多少?
序列的长度 n 满足 2≤n≤105,序列中的每个整数均为正数且不超过 105。
第一行包含一个整数 n,表示序列的长度。 第二行包含 n 个整数,依次表示序列中的元素。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册