母牛生产问题CowProductionProblem
1. 问题描述:
* 母牛生产问题CowProductionProblem
* 母牛从3-7岁初每年会生产1头小母牛,10岁后死亡(10岁仍然存活)。
* 假设初始有1头刚出生的母牛,请问第n年有多少头母牛?(年从第一年开始计数)
* 注:第3年初会出生第一头牛,故第3年有两头母牛;
* 第5年初第3年出生的小母牛会生产,故第5年有五头母牛。
* 输入描述:输入一个正整数表示n年;
* 输出描述:一个数字,表示第n年有多少头牛。
* 示例:输入==>输出:1==>1; 2==>1; 3==>2;4==>3;5==>5;12==>123;
2. 思路分析:
* 思路1:利用ArrayList解决。 * list中存放的是每个母牛的年龄,每年都会遍历一次List,年龄都会加1, * 另外两个处理:年龄大于10的,删除当前元素;年龄在3-7岁之间的添加值为1的新元素。 * 这种算法缺点:①需要不断删除和添加元素,如果利用ArrayList将会带来较大的数据拷贝操作; * ②随着年数的增多,母牛的数量肯定增大,空间复杂度就会较大。 * 缺点①改进:可以使用LinkedList,或者将删除元素改为修改元素,即将年龄大于10的改为1, * 表示新生母牛取代了老去的母牛,避免了删除操作;但是不断增加元素仍然会有扩容数组拷贝操作&