老哥,我也想到的是DP,和你的不太一样,但是我不知道对不对,因为我在最后的时候发现有个符号写错了... 我定义的dp数组是dp[i][j],i表示一长串连续的0的个数,j表示这一长串连续的0能使用的数字的个数。 举个例子,0 0 2 0 0 0 3 4 0 0 8 0 0 0 0,假设k是10: 遍历到2的时候,最前面连续的两个0的所有可能性是dp[2][2] 遍历到3的时候,接着中间连续的三个0的所有可能性是dp[3][2] 遍历到8的时候,中间连续的两个0的所有可能性是dp[2][5] 最后数组遍历完之后,最后连续的四个0的所有可能性是dp[4][3] 最后把这四串0的结果乘起来,不知道这种思路是否正确? 然后dp[i][j] = dp[i-1][j] + dp[i][j-1], base case为:dp[1][p] = p,dp[p][1] = 1。
点赞 2

相关推荐

点赞 评论 收藏
分享
02-16 22:13
门头沟学院 Java
Yki_:女生学成这样挺不错了,现在停止网课,立刻all in八股,从最频繁的开始背,遇到不会的知识点直接问AI,项目也别手敲,直接看技术文档,背别人总结好的面试官可能问的问题的答案,遇到不会的再去代码里找具体实现就可以了,3月份开始边背边投实习约面
点赞 评论 收藏
分享
牛客网
牛客企业服务