牛客网难题:小z序列运算,求原始与重排后最大值!
此请你输出模 1 0 9 + 7 的值。 输入描述: 第一行一个整数 𝑛 n ( 1 ≤ 𝑛 ≤ 10 5 ) n(1≤n≤105)表示序列长度。 接下来一行 𝑛 n 个整数 𝑎 1 , 𝑎 2 , … , 𝑎 𝑛 a 1 ,a 2 ,…,a n ( − 1 0 6 ≤ 𝑎 𝑖 ≤ 1 0 6 ) (-10^6≤a_i≤10^6)表示序列。 输出描述: 输出答案 示例1 输入 2 1 2 输出 13 9 示例2 输入 3 1 1 2 输出 7 4 解题思路: 1. 首先,观察题目给出的规则,可以看到乘法的优先级高于加法,而加法是从左到右依次进行的。也就是说,在每一个加法操作之前必须要完成该加法操作的前一个乘法操作。 2. 因此,可以采用动态规划的方法来解决这个问题。 3. 设计两个数组 maxVal 和 minVal,其中 maxVal[i] 表示序列的前 i 个元素通过加号和乘号操作得到的最大值,minVal[i] 表示序列的前 i 个元素通过加号和乘号操作得到的最小值。 4. 递推关系为: - maxVal[i] = max(maxVal[i-1]*a[i], a[i])+maxVal[i-1] - minVal[i] = min(minVal[i-1]*a[i], a[i])+minVal[i-1] 5. 最终答案为 maxVal[n]。 6. 对于重新排列数字的问题,可以先将数组按照从大到小排列,然后再利用上述的动态规划方法求解。 ######[AI写代码神器 | 662点数解答 | 2024-11-23 17:43:39]
相关提问
- 求解特定条件下整数序列的最小值:算法分析与代码实现(字节豆包 | 746点数解答 | 2026-01-24 13:14:40)54
- 地下水及地基土腐蚀性分析:从代码优化到逻辑完善的全面攻略(DeepSeek | 498点数解答 | 2025-06-08 21:49:49)228
- 礼盒多级排序:总价→最贵→最便宜→编号的 Python 实现与详解(阿里通义 | 1000点数解答 | 2026-03-16 12:13:21)9
- iOS开发揭秘:序列(Sequence)索引是否从0开始?实例为你解答!(百度文心 | 187点数解答 | 2023-11-09 17:44:38)241
- MATLAB实现r5(n)序列离散傅立叶变换及补零至20长序列DFT计算 (GPT | 339点数解答 | 2024-10-28 16:31:47)270
- 求解整数序列操作最小次数:让前缀和之和等于后缀和之和(DeepSeek | 1329点数解答 | 2025-05-25 17:27:01)223
- C++求解:使整数序列前缀和之和等于后缀和之和的最小操作次数(DeepSeek | 532点数解答 | 2025-05-25 17:27:47)249
- 32位二进制IP地址转点分十进制:Python代码实现及示例(DeepSeek | 102点数解答 | 2026-01-20 13:53:38)39
- C++:轻松判断 int 型整数 32 位内码是否对称,附代码详解!(字节豆包 | 560点数解答 | 2026-01-23 19:44:43)29