【问题标题】:Maximum Ordered Ratio [Divide and Conquer Algorithms]最大有序比[分而治之算法]
【发布时间】:2019-04-08 01:38:31
【问题描述】:

问题:“假设您输入一个数字序列 [a1, a2, ..., an],其中 n ≥ 2。您的目标是找到其中两个数字之间的最大比值序列中的分母。"

显然,可以对列表进行排序并找到最大的比率,但考虑到分子和分母的问题约束,该选项不适用。我们可以做什么?因此,由于索引很重要,因此对数组进行排序非常重要。

【问题讨论】:

    标签: algorithm divide-and-conquer


    【解决方案1】:

    您不必对元素数组进行排序。您可以从数组的末尾到数组的开头检查它。请看下面的算法:

    n = size of array  A // array are 0 indexed
    
    numerator = A[n-1]
    denominator = A[n-2]
    
    max_numerator = max(A[n-1], A[n-2])
    
    for i = n-3 to 0 {
        // assume A[i] as denominator
        if (numerator/denominator) < (max_numerator/A[i]) {
            numerator = max_numerator
            denominator = A[i]
        }
        max_numerator = max(max_numerator, A[i])
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-26
      • 2013-02-02
      • 1970-01-01
      • 2013-01-16
      • 2011-05-22
      • 2012-01-01
      • 2020-07-23
      • 1970-01-01
      相关资源
      最近更新 更多