题解 | #附加题#

附加题

https://www.nowcoder.com/practice/58b04ed2865f4ff4921290f1bd4ee486

package main

import (
	"fmt"
)

func main() {
	a := 0
	fmt.Scan(&a)
	arr := make([]int, a+1)
	for i := 0; i < a; i++ {
		fmt.Scan(&arr[i])
        arr[i]--
	}
	fmt.Printf("%v", answer(arr))
}

func answer(a []int) int {
    rooms := len(a)
	dp := make([]int, rooms)
	for i := 0; i < rooms-1; i++ {
		dp[i+1] = (dp[i]*2 - dp[a[i]] + 1000000009) % 1000000007
	}
	return dp[rooms-1]
}

全部评论

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
求面试求offer啊啊啊啊:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务