classSolution{public:boolthreeConsecutiveOdds(vector<int>& arr){int num =0;for(auto i : arr){if(i %2==1)
num ++;//遇见奇数,num ++ 记录奇数个数else
num =0;//遇见偶数重置if(num ==3)returntrue;//达到3个了返回ture}returnfalse;//前面没有返回,说明没有符合要求的}};
classSolution{public:intminOperations(int n){if(n %2==1)return(n +1)*(n /2)/2;//奇数return n *(n /2)/2;//偶数}};
5489. 两球之间的磁力
思路:
使用二分查找法找出结果
细节见注释
代码如下:
constint INF =1000000000;classSolution{public:boolcheck(int d , vector<int>& p ,int m ,int len){int place = p[0];//左端放一个
m --;//球减少一个for(int i =1; i < len && m >0;++ i)if(p[i]- place >= d){//p[i]可以放
place = p[i];//p[i]处放一个球
m--;//球减少一个}return m ==0;//看球是否放完,如果放完说明此时的d不大}intmaxDistance(vector<int>& position,int m){int n = position.size(), ans =0;sort(position.begin(), position.end());//先排序,再使用二分查找int l =0, r = INF ;while(l <= r){//常规查找法int mid =(l + r)/2;if(check(mid , position , m , n)){
ans =max(mid , ans);//ans取最大数
l = mid +1;}else
r = mid -1;}return ans ;}};