请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

您对198号问题的解答是不可以改进一点?20行: for (int j = i; j < n && j - i<2; j++)

正在回答 回答被采纳积分+3

插入代码

2回答

提问者 heisback 2018-01-06 17:14:54

这个就已经是O(n)了,第二层循环最多只执行两次

for( int i = n-2 ; i >= 0 ; i -- ) {

            memo[i] = memo[i+1];

            for (int j = i; j < n && j-i<2; j++)

                memo[i] = max(memo[i], nums[j] + (j + 2 < n ? memo[j + 2] : 0) );

        }

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信