Given an array a contains integers, return
the maximum consecutive multiplication
Example:
int[] a = {2, -2, -3, 4, -5, 6} ;
return 360 (-3 * 4 * -5 * 6)
code

Code
1 // Use two variable max and min to record the max positive multiplication
2 // and min negetive multiplication at current position
3 public long Multiplication(long[] a)
4 {
5 long max = 1; // max positive multiplication at current position
6 long min = 1; // min negetive multiplication at current position
7 long r = 1; // result, max multiplication totally
8
9 for (int i = 0; i < a.Length; i++)
10 {
11 if (a[i] > 0)
12 {
13 max *= a[i];
14 min = Math.Min(min * a[i], 1);
15 }
16 else if (a[i] == 0)
17 {
18 max = 1;
19 min = 1;
20 }
21 else // i < 0
22 {
23 long temp = max;
24 max = Math.Max(min * a[i], 1);
25 min = temp * a[i];
26 }
27 r = Math.Max(r, max);
28 }
29 return r;
30 }
31
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述