母牛生产问题CowProductionProblem--算法题--Java实现

母牛生产问题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,
* 表示新生母牛取代了老去的母牛,避免了删除操作;但是不断增加元素仍然会有扩容数组拷贝操作&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值