Leetcode-995 Minimum Number of K Consecutive Bit Flips(K 连续位的最小翻转次数)
Posted Asurudo Jyo の 倉 庫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode-995 Minimum Number of K Consecutive Bit Flips(K 连续位的最小翻转次数)相关的知识,希望对你有一定的参考价值。
1 #define maxn 30002 2 #define _for(i,a,b) for(int i = (a);i < (b);i ++) 3 int dir[maxn],f[maxn],n; 4 class Solution 5 { 6 public: 7 int solve(int k) 8 { 9 memset(f,0,sizeof(f)); 10 int sum=0,res=0; 11 for(int i=0; i+k<=n; i++) 12 { 13 if((dir[i] + sum) %2== 1) 14 { 15 f[i]=1; 16 res++; 17 } 18 sum+=f[i]; 19 if(i-k+1>=0) sum-=f[i-k+1]; 20 } 21 22 for(int i=n-k+1; i<n; i++) 23 { 24 if((dir[i] + sum) %2== 1) return -1; 25 if(i-k+1>=0) sum-=f[i-k+1]; 26 } 27 return res; 28 } 29 30 int minKBitFlips(vector<int>& A, int K) 31 { 32 n = A.size(); 33 _for(i,0,n) 34 if(A[i]) 35 dir[i] = 0; 36 else 37 dir[i] = 1; 38 return solve(K); 39 } 40 };
经典ACM问题——奶牛掉头
以上是关于Leetcode-995 Minimum Number of K Consecutive Bit Flips(K 连续位的最小翻转次数)的主要内容,如果未能解决你的问题,请参考以下文章
算法leetcode每日一练2220. 转换数字的最少位翻转次数
算法leetcode每日一练2220. 转换数字的最少位翻转次数