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. 转换数字的最少位翻转次数

numb2string

python切片

算法leetcode每日一练2220. 转换数字的最少位翻转次数

双百解法5915. 找出临界点之间的最小和最大距离——Leecode周赛系列

使用awk对某一列进行求和计算