摘要: 经典dp问题,用dp[i]表示前i个字符解码方案的总数。 显然dp[0]=1(空字符也相当于一种解码方案), 然后从小到大递推计算dp数组,如果当前当前数字不是0(也就是大于等于1小于等于9),则当前字符可以连接在之前所有字符之后成为一个新方案。 当前字符是0是不行的,0不能映射成英文字母。 所以有 阅读全文
posted @ 2020-07-18 12:19 machine_gun_lin 阅读(173) 评论(0) 推荐(0)
摘要: DFS枚举所有子集,对于每个数字,假设出现次数是cnt,则枚举这个数字的出现次数0,1, 2,.....cnt,其他数字同理。 所以解空间是指数级的。 要计算所有数字出现的次数,可以直接排序,这样同样的数字都是相邻的。 然后一个for循环枚举每个数的添加次数,假设一个数字的出现次数是cnt,则枚举它 阅读全文
posted @ 2020-07-18 11:02 machine_gun_lin 阅读(83) 评论(0) 推荐(0)
摘要: 找规律,格雷码的一种生成方法如下图。对于n先将n-1的所有格雷码复制一下,然后轴对称所有n-1的格雷码,然后前半部分补0,后半部分补1, 就得到了n的格雷码。 class Solution { public: vector<int> grayCode(int n) { vector<int> res 阅读全文
posted @ 2020-07-18 00:19 machine_gun_lin 阅读(123) 评论(0) 推荐(0)