Product in foldRight

object ProductFolderRight {

  def product(ld: List[Double]): Double = {
    def loop(ls: List[Double], acc: Double): Double =
      ls match {
        case Nil      => acc
        case 0.0 :: t => 0.0
        case h :: t   => h * loop(t, acc)
      }
    loop(ld, 1.0)
  }

  def main(args: Array[String]): Unit = {
    println(product(List(1.0, 2, 3, 4, 5)))
    println(product(List(1.0)))
    println(product(List(1, 2, 0.0, 4, 5)))
  }

}
120.0
1.0
0.0
时间: 2024-11-09 08:47:01

Product in foldRight的相关文章

Play scala 4 List的实现

函数式的集合不允许 update value in place, 只能用函数操作集合,每个操作都产生新的集合.这样会造成大量copy吗? 令人惊异的是,No ! 自己实现List package ch3.dslist sealed trait List[+A]  //sealed的作用: 所有继承List的类型都必须定义在本文件 case object Nil extends List[Nothing] case class Cons[+A](head: A, tail: List[A]) ex

第37讲:List的foldLeft、foldRight、sort操作代码实战

其实flodLeft和foldRight就是折叠操作,我让们看下下列的函数 折叠操作 def sum(xs:List[Int]):Int = ( 0 /: xs)(_ +_) def product(xs:List[Int]):Int=( 1 /: xs)(_ *_) (fruit.head /: fruit.tail)(_ + " " + _) //用空格连接列表中每个元素 列表排序 sort println(List(1,-4,3,2,6).sortWith(_<_))//L

LeetCode 238 Product of Array Except Self(除自身外数组其余数的乘积)

翻译 给定一个有n个数字的数组nums,其中n大于1,返回一个数组使得output[i]等于除nums[i]外所有元素的乘积. 不用分治并且在O(n)复杂度下解决这个问题. 例如,给定[1, 2, 3, 4],返回[24, 12, 8, 6]. 跟进: 你可以只在常量空间下完成它吗? (备注:在空间复杂度计算时输出数组不作为额外空间.) 原文 Given an array of n integers where n > 1, nums, return an array output such t

LeetCode-152 Maximum Product Subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest product. For example, given the array [2,3,-2,4],the contiguous subarray [2,3] has the largest product = 6. 思路:使用动态规划. 设max[i]是以num[i]为结尾元素的子数组的最大乘积:

[LeetCode]Maximum Product Subarray

Find the contiguous subarray within an array (containing at least one number) which has the largest product. For example, given the array [2,3,-2,4], the contiguous subarray [2,3] has the largest product = 6. 这道题是找出数组中的一个子序列,要求这个子序列中数的乘积是所有子序列中最大的. 如

用itertools.product简化嵌套for循环

今天这一题叫做"偷瞄到的密码": 警察跟踪一名窃贼来到了一个仓库门前.仓库的密码锁盘如下: 1 2 3 4 5 6 7 8 9 0 窃贼输入密码后进了门.警察"觉得"自己看到了密码比如1357,但是也有可能是相邻的数字(相邻仅包括正上下左右,不包括对角线),比如第一位不是1,而是相邻的4和2(不包括5). 可能的密码是哪些组合呢? 这道题目可以抽象成: 1. 0-9各自都对应了一组相邻数字 现给定一个数字串: 2. 对数字串中的每个数字,找到对应的相邻数组 3. 计

mac上装eclipse报jvm is not suitable for this product错误时方法

mac上装好了jdk 1.80最新版后,下载eclipse安装,结果报jvm 1.605 is not suitalbe for this product 打开终端,java -version  结果显示是1.605的 我的最终解决方法:下载了java se 1.80版的 安装后,再安装eclipse就不抱错了 java -version显示1.80

关于iOS10 Xcode8真机测试项目出现的问题 &quot;code signing is required for product type &#39;xxxxx&#39; in SDK &#39;iOS 10.0&quot;..

昨天用真机测试项目出现这样的错误,在网上搜集了一些信息,所以将自己的经验分享出来帮助更多的人. 第一步: 检查你的1和2是否填写正确,如果你是运行别人的项目,BundleIdentifier要和你的Xcode之前填写的要一致,例如,我之前填写的com.baidu.xxxx,但是我真机测试的是com.alibaba.xxx,这样就不一致了,可能会导致错误 第二步: 在Bulid Setting 中找到Singning, 在3处,你可能会看到自己的开发者账号,不要选!!,还有下面 4 Develop

238. Product of Array Except Self

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in O(n). For example, given [1,2,3,4], return [24,12,8,6]. Fo