338. Counting Bits
重点在于这张图。
从i==1开始,dp的array如果i是2的1次方之前的数,是1 + dp[i - 2 ^ 0];
如果i是2的2次方之前的数,是1 + dp[i - 2 ^ 1];
如果i是2的3次方之前的数,是1 + dp[i - 2 ^ 2];
198. House Robber
如果抢2,那么就要抢2和到0为止最多的钱;如果不抢2,那么就要抢到1为止最多的钱。
如果抢3,那么就要抢3和到1为止最多的钱;如果不抢3,那么就要抢到2为止最多的钱。
如果抢4,那么就要抢4和到2为止最多的钱;如果不抢4,那么就要抢到3为止最多的钱。
139. Word Break
从后往前,如果在中间某一个index发现这个index和后面的字母组成一个单词,那么index处的bool就是这个单词结尾处i+1的bool(如果是false说明再往后走不通,就不要走了)
具体代码技巧:dp的size比s大一,dp除了最后一位是true之前都是false。这样从后往前数第一个词语出现的时候,也是可以按照规律,等于词尾index+1的bool的