【问题标题】:functional code to below imperative one in scala功能代码低于 scala 中的命令式代码
【发布时间】:2016-02-12 07:38:37
【问题描述】:

我想编写函数版本来查找具有给定总和的元素对。下面是命令式代码:

object ArrayUtil{

  def findPairs(arr:Array[Int],sum:Int) ={
    val MAX = 50
    val binmap:Array[Boolean] = new Array[Boolean](MAX)

    for(i <- 0 until arr.length){

      val temp:Int = sum-arr(i);
         if (temp>=0 && binmap(temp))
           {
            println("Pair with given sum " + sum + " is (" + arr(i) +", "+temp+")");
           }
      binmap(arr(i)) = true;
       }
    }
}

【问题讨论】:

    标签: scala functional-programming imperative


    【解决方案1】:

    研究Standard Library

    def findPairs(arr:Array[Int],sum:Int): List[Array[Int]] =
      arr.combinations(2).filter(_.sum == sum).toList
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2020-06-15
      • 2012-01-09
      • 2015-04-09
      相关资源
      最近更新 更多