Quantcast
Channel: Flip bits in array using python - Stack Overflow
Viewing all articles
Browse latest Browse all 3

Flip bits in array using python

$
0
0

You are given an integer array with N elements: d[0], d[1], ... d[N - 1]. You can perform AT MOST one move on the array: choose any two integers [L, R], and flip all the elements between (and including) the L-th and R-th bits. L and R represent the left-most and right-most index of the bits marking the boundaries of the segment which you have decided to flip.

What is the maximum number of 1-bits (indicated by S) which you can obtain in the final bit-string?

'Flipping' a bit means, that a 0 is transformed to a 1 and a 1 is transformed to a 0 (0->1,1->0).

Input Format: An integer N, next line contains the N bits, separated by spaces: d[0] d[1] ... d[N - 1]

Output: S

Constraints:

1 <= N <= 100000,d[i] can only be 0 or 1 ,0 <= L <= R < n ,

Sample Input:

81 0 0 1 0 0 1 0 

Sample Output: 6

Explanation:

We can get a maximum of 6 ones in the given binary array by performing either of the following operations:

Flip [1, 5] ==> 1 1 1 0 1 1 1 0

Viewing all articles
Browse latest Browse all 3