关注
第三题
func solution3(_ nums: [Int]) -> Int {
let N = nums.count
let K = mypow(N) - 1
let mod = Int(1e9+7)
var sum = 0
for num in nums {
sum = (sum + num) % mod
}
let inverseN = modInverse(N, mod)
let result = (K * sum % mod) * inverseN % mod
return result
}
func mypow(_ n: Int) -> Int {
var _n = n
var a = 2
var res = 1
let mod = Int(1e9+7)
while _n > 0 {
if _n % 2 == 1 { res = (res * a) % mod }
a = (a * a) % mod
_n /= 2
}
return res
}
func modInverse(_ a: Int, _ m: Int) -> Int {
var m0 = m
var a0 = a
var m1 = m
var x0 = 0
var x1 = 1
while a0 > 1 {
let q = a0 / m0
var t = m0
m0 = a0 % m0
a0 = t
t = x0
x0 = x1 - q * x0
x1 = t
}
if x1 < 0 {
x1 += m1
}
return x1
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# mt对你说过最有启发的一句话 #
15645次浏览 204人参与
# 摸鱼被leader发现了怎么办 #
82168次浏览 519人参与
# 秋招被挂春招仍然能投的公司 #
2631次浏览 39人参与
# 工作中遇到的歹人 #
14703次浏览 198人参与
# 什么是优秀的实习经历 #
3575次浏览 133人参与
# 今年秋招你收到了多少封邮件? #
10543次浏览 141人参与
# 被上班搭子“传染”了哪些习惯 #
2873次浏览 73人参与
# 工作后,你落下了哪些病根 #
6197次浏览 133人参与
# 秋招特别不鸣谢 #
7043次浏览 93人参与
# 选实习,你更看重哪方面? #
6001次浏览 120人参与
# 一人一个landing小技巧 #
137788次浏览 1491人参与
# 考研失败就一定是坏事吗? #
165083次浏览 1207人参与
# 实习简历求拷打 #
642次浏览 20人参与
# 工作后明白的那些道理 #
40824次浏览 606人参与
# 秋招暂停,我将对以下公司做出处罚__ #
45868次浏览 185人参与
# 机械/制造每日一题 #
79327次浏览 1401人参与
# 找工作有哪些冷知识 #
201451次浏览 2574人参与
# 携程求职进展汇总 #
832208次浏览 5335人参与
# 你见过最离谱的招聘要求是什么? #
247482次浏览 1702人参与
# 打工人的精神状态 #
121576次浏览 1413人参与
