题解 | #最大放牛数#
最大放牛数
https://www.nowcoder.com/practice/5ccfbb41306c445fb3fd35a4d986f8b2
知识点
模拟,贪心
思路
当i与i-1位置都为0时,这个位置0变为1,同时n--。
特判:i=0且i位置为0时,也要将这个位置变为1,同时n--。
最后当n<=0,可以返回true。否则返回false
代码c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pasture int整型vector
* @param n int整型
* @return bool布尔型
*/
bool canPlaceCows(vector<int>& pasture, int n) {
// write code here
int t=0;
int ans=0;
for(int i=0;i<pasture.size()&&n;i++)
{ if(i==0&&pasture[i]==0)
{pasture[i]=1;
n--;
}
else if(pasture[i-1]==0&&pasture[i]==0)
{
pasture[i]=1;
n--;
}
}
if(!n)return true;
else return false;
}
};