题解 | #附加题#

附加题

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]
}

全部评论

相关推荐

千疮百孔的象牙塔:我也在捣鼓im,你这个im好奇怪的样子,单看简历get不到点,im的消息及时性,消息可靠性,然后系统的可扩展性这几个关键问题都是怎么解决的从简历描述get不到,具体说消息怎么传,消息怎么推送,消息怎么存,消息安全怎么做的这些点感觉对应不起来
点赞 评论 收藏
分享
mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务