私はHaskellでいくつかの練習をしていますが、これは現在私がhttps://leetcode.com/problems/product-of-array-except-self/で作業しているものです。除算を使わずに現在のインデックスを除いた要素の積にリストをマッピングする
n> 1、numsのn個の整数の配列を指定すると、output [i]がnums [i]以外のnumのすべての要素の積と等しくなる配列出力が返されます。
分割せずにO(n)で解いてください。
たとえば、[1,2,3,4]を指定すると、[24,12,8,6]を返します。
私は部門でかなり簡単にそれを行うことができました:
import Data.List (foldl1')
productOfArray :: [Int] -> [Int]
productOfArray xs = f <$> xs
where p = foldl1' (*)
f = div (p xs)
しかし、私は分裂を行わず、それにアプローチする方法が非常にわかりません。命令型アプローチは、現在のインデックスの左側にあるすべての数字と現在のインデックスの右側にあるすべての数字との積にマップされますが、ハスケルではそれをどのように概念化するかについてはあまりよく分かりません。
、[splitAt](http://hackage.haskell.org/package/base-4.8.2.0/docs/Prelude.html#v:splitAt)は良いスタートです。 – Mephy