思想—动态规划
以前一直听说动态规划的鼎鼎大名,一直没有明确到底什么是动态规划。。。今天感觉见识到了真面目。
看到今天这个题目是动态规划思想之后,想起来以前做的那个题:一共n个台阶,一次可以走1个或2个,一共有多少种走的方式。
可能以前也有用过动态规划,但是并没有意识到是这个思想。
题目—数字编码
看到题目有一点点的思路,但是并不清晰,刷题还不够多啊。
看了别人的解析之后,写出来了,但是还是很复杂,和别人的代码一比,还是有很多可以改进的地方的:
1)我考虑的其实还是每个位置的char;但其实可以先转换成int类型,再讨论情况
而且这里转换成int,可以不用区分前一个和后一个的关系,只通过两者组合成的int的大小来判断,通过这一个转换把讨论的情况变得少了很多,简单了很多
(2)char可以做减法的,char每个都有对应的值,而且0-9是按照顺序来的,包括字母也是
(3)用数字讨论,一共有三种情况,但是可以进行简化,后者其实是前面两个条件同时满足(同时要注意else if的使用,有些情况是不能使用else if的,必须单独再写一个if)
(4)“滚动数组”优化空间!!!(万一限制空间复杂度)
(5)最前面使用 空格 作为哨兵,也可以减少讨论情况,以后也要尝试