请用swift代码编写
时间: 2023-07-02 08:16:40 浏览: 42
好的,这是使用Swift编写的华为OD机试等和子数组最小和问题的动态规划代码:
```swift
func minSumOfEqualSubarray(_ nums: [Int]) -> Int {
let n = nums.count
var presum = [Int](repeating: 0, count: n + 1)
for i in 1...n {
presum[i] = presum[i - 1] + nums[i - 1]
}
var dp = [Int](repeating: Int.max, count: n)
var minSum = Int.max
for i in 0..<n {
for j in 0...i {
let s_ji = presum[i + 1] - presum[j]
if (presum[n] - presum[i + 1] + presum[j]) % 2 == 0 {
if j == 0 {
dp[i] = min(dp[i], s_ji)
} else {
dp[i] = min(dp[i], dp[j - 1] + s_ji)
}
if i == n - 1 {
minSum = min(minSum, dp[i])
}
}
}
}
return minSum == Int.max ? -1 : minSum
}
```
这里使用了Swift的数组和循环语法,如果您有任何关于Swift语言的问题,请随时提问。