1.1-每日一题605
刚开始我把这道题当作了递归来做,所以我在每个节点(可种)设置了两种策略:选择当前点/选择下一个节点。递归栈溢出。
后来根据题解,发现确实是应该用贪心做,原因是:只要当前节点选择种花,最后能种的数量一定不会小于当前节点不种。只要当前节点种了,则种花的数量一定-1,而且不会影响到后续能种花的最大数量。
我犯的第一个错误是,没有一下判断出来这是一道贪心题,认为在当前节点(可种)有两种策略。
在贪心方法的构造过程中,我对“可种”的判定是:
1.当前节点为0。
2.1 左=右=0
2.2 最左 and 右=0
2.3 最右 and 左=0
这个方法的错误在于,当输入[0], 1时,不能判断出这是合法的。实际上还要将这个情况加入:
2.4 len=1
将这个条件进行左、右的描述:
2.4 最左 and 最右
将2.1--2.4分左、右进行总结,有如下结果:
2.1 最左 or 左=0
2.2 最右 or 右=0
2.3 2.1and2.2
这样才是正确的贪心策略,至此结束。

浙公网安备 33010602011771号