2018深信服
递推-抓兔子
d[i][j]=1 表示为了不被抓住,第i天兔子不能出现在j号洞。根据输入的农夫第i天检查的洞的序号k, 将数组初始化为 d[i][k] = 1.
然后从第n天递推第n-1天不能出现的洞,标记为1. 有两种情况, d[i][2或4] = 1 时, d[i-1][1或5] 要赋值为1; if (d[i][t-1] && d[i][t+1] == 1) d[i-1][t] = 1 .
如果d[1][j] 全部等于1,表示兔子第一天哪都不能出现,农夫胜利;反之,农夫不是必胜测略。
空间复杂度优化:由于d[i-1]只与d[i]有关,可将二维数组压缩为2个一维数组。
将第0个洞和第n+1两个辅助洞初始化为1, 则可以统一递推公式 d[i-1][j] = d[i][j-1] && d[i][j+1]
Hash-发礼品
先存hash,hash能插入,再存List,最后输出list。
扫描二维码关注公众号,回复:
1743796 查看本文章