2018秋招笔试真题

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 查看本文章

猜你喜欢

转载自blog.csdn.net/wzwdcld/article/details/80765575
今日推荐