如何解决以下编程问题.
有一个数组只包含0s和1s按随机顺序排列.的位置1可以与任何位置被切换0.什么是所需的最小交换数量,以便所有交换1s在一起.
解决这个问题的最佳方法是什么?我甚至无法想出蛮力的方法.
例如,考虑以下数组(索引从0开始)
数组大小14 1 0 0 0 1 0 1 0 1 0 0 0 0 1
第一次传递后0 0 0 0 1 1 1 0 1 0 0 0 0 1(索引0与索引5交换)
第二次传球后0 0 0 0 1 1 1 1 1 0 0 0 0 0(指数7与指数13交换)
需要两次交换才能将所有内容1s整合在一起