Swift-子数组最大乘积

题目:给定一个长度为N的整数数组,只允许用乘法,不能用除法,计算任意(N-1)个数的组合中乘积最大的一组。
核心代码:
<pre><code>` func multiMaxValue(arr:[Int]) -> Int {

    let count:Int = arr.count
    var left:[Int] = [Int].init(repeating: 1, count: count)
    var right:[Int] = [Int].init(repeating: 1, count: count + 1)
    
    for i in 1..<count { // 左边数据叠乘
        left[i] = arr[i - 1] * left[i - 1]
    }
    
    for j in stride(from: count - 1, to: 0, by: -1) { // 右边数据叠乘
        right[j] = arr[j] * right[j + 1]
    }
    
    var maxValue:Int = 1
    for i in 0..<count { // 计算最大值-FlyElephant
        let value = left[i] * right[i + 1]
        if value > maxValue {
            maxValue = value
        }
    }
    return maxValue
}`</code></pre>

测试代码:
<pre><code>var calculator:Calculator = Calculator() var calculatorData:[Int] = [2, 3, 4, 5, 6] var calResult:Int = calculator.multiMaxValue(arr: calculatorData) print("FlyElephant--子数组的最大乘积---\(calResult)")</code></pre>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,652评论 0 5
  • 来源:NumPy Tutorial - TutorialsPoint 译者:飞龙 协议:CC BY-NC-SA 4...
    布客飞龙阅读 33,002评论 6 98
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • 姓名: 张娟 公司: 路易彬彦 【日精进打卡第93天】 【知~学习】 《六项精进》1遍共126遍 《大学》0遍 共...
    路易彬彥张娟阅读 301评论 0 0
  • 有人说 给的生活太安逸了 就胡思乱想了 可墙角的猫却说 是物质够了 情感渴了 中原的风送来你 高原的风送来你们 我...
    庸医ZM阅读 290评论 0 0