牛牛是一个喜欢二进制的牛,他有一个由0和1组成的二进制数组data。现在,牛牛想要将数组中的所有1连在一起,但是可以放在数组中的任意位置,为了达到这个目标,牛牛可以进行若干次交换操作。每次交换操作,牛牛可以选择数组中的两个元素进行交换。请你编写一个函数,计算牛牛至少需要进行多少次交换操作,才能完成这个操作。
示例1
输入
[0,0,1,0,0]
输出
0
说明
由于数组中只有一个1,不需要进行交换操作。
示例2
输入
[1,0,1,0,1,0,0,1,1,0,1]
输出
3
备注:
1 data[i] 的值为 0 或 1。
加载中...
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ public int minSwaps (int[] data) { // write code here } }
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型vector * @return int整型 */ int minSwaps(vector
& data) { // write code here } };
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param data int整型一维数组 # @return int整型 # class Solution: def minSwaps(self , data ): # write code here
using System; using System.Collections.Generic; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ public int minSwaps (List
data) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ function minSwaps( data ) { // write code here } module.exports = { minSwaps : minSwaps };
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param data int整型一维数组 # @return int整型 # class Solution: def minSwaps(self , data: List[int]) -> int: # write code here
package main import "fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ func minSwaps( data []int ) int { // write code here }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @param dataLen int data数组长度 * @return int整型 */ int minSwaps(int* data, int dataLen ) { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param data int整型一维数组 # @return int整型 # class Solution def minSwaps(data) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ def minSwaps(data: Array[Int]): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ fun minSwaps(data: IntArray): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ public int minSwaps (int[] data) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ export function minSwaps(data: number[]): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ func minSwaps ( _ data: [Int]) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param data int整型一维数组 * @return int整型 */ pub fn minSwaps(&self, data: Vec
) -> i32 { // write code here } }
[0,0,1,0,0]
0
[1,0,1,0,1,0,0,1,1,0,1]
3