找到将所有0&0移到数组末尾所需的最小交换次数?

时间:2017-04-30 14:23:38

标签: c++ arrays algorithm

#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

typedef long long int ll;

ll swapCount(ll arr[], ll n)
{

    ll count = 0;
    ll lastNonZeroElementIndex = 0;

    for (ll i = 0; i < n; ++i) {

        if (arr[i]) {
            lastNonZeroElementIndex = i + 1;
            ++count;
        }
    }
    return lastNonZeroElementIndex - count;
}

int main()
{

    ll t, n;
    cin >> t;
    while (t--) {
        /* code */
        cin >> n;
        ll arr[n];
        for (ll i = 0; i < n; ++i) {
            cin >> arr[i];
        }
        cout << swapCount(arr, n) << endl;
    }
    return 0;
}
  

订单应该就位。

     

我正在做的是,我存储的是非零元素的计数和最后一个非零元素的索引。并返回这两者的差异。   你能告诉我在哪里弄错了吗?

Problem Statement

0 个答案:

没有答案