gpt4 book ai didi

arrays - F#查找2个数组/列表之间的丢失元素

转载 作者:行者123 更新时间:2023-12-03 08:28:37 27 4
gpt4 key购买 nike

“所以,我对F#非常陌生。我希望问题很简单。我一直在研究并环顾四周。我在表达式中的这一点或之前有一个“不完整的结构化构造”错误。我觉得这可能很简单,否则我就走了。

目的是:

有一个非负整数数组。第二个数组是
通过改组第一个元素而形成
数组并删除随机元素。给定这两个数组,找到第二个数组中缺少的元素
数组。不允许线性搜索。

let FindMiss list =
match list with
| [] ->
[]
|firstElem::otherElements ->
let rand = new Random
let shuffle (arr : 'a array) =
let array = Array.copy arr
let n = array.Length
for x in 1..n do
let i = n-x
let j = rand.Next(i+1)
let tmp = array.[i]
array.[i] <- array.[j]
array.[j] <- tmp
array
return array
array.[rand].delete
|array::list ->
let d=collections.defaultdict(int)
for num in list do
d[num] +=1
for num in array1 do
if d[num]==0 then return num
else d[num]-=1

printfn "The missing Number is: %A" (FindMiss[4;2;1;7;5;6;3;2])

最佳答案

任务是重新实现List.except?

如果没有,只需使用“except”即可:

[1;2;3] |> List.except [1;2]

还是任务“随机删除列表中的元素”?这就是“答案”: https://stackoverflow.com/a/2889972/5514938

关于arrays - F#查找2个数组/列表之间的丢失元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33357928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com