c_cpp 将所有元素小于或等于k所需的最小交换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 将所有元素小于或等于k所需的最小交换相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int check(int *a, int n, int k){
    int c = 0;

    for (int i = 0;i<n;i++)
        if (a[i] <= k)
            c += 1;
    return c;
}

int main(){
    int n;
    cout << "No.of elements \n";
    cin >> n;
    int a[n];
    cout << "Enter the elements \n";
    for (int i = 0;i<n;i++)
        cin >> a[i];
    cout << "Enter k:";
    int k;
    cin >> k;
    int total = check(a,n,k);

    int c = 0;
    for(int i = 0;i< total; i++){
        if (a[i] <= k)
            c++;
    }

    for(int i = 1; i <n-k+1;i++){
        int b[total];
        memcpy(b, a+i, total*sizeof(int));

        int d = check(b,total,k);
        if (c < d)
            c = d;
    }
    cout << total - c;
}

以上是关于c_cpp 将所有元素小于或等于k所需的最小交换的主要内容,如果未能解决你的问题,请参考以下文章

使序列的所有元素为 0 所需的最小步骤数

想在含有n个元素的序列中得到最小的前k个元素,最好采用啥排序算法

c_cpp 使表达式平衡所需的最小括号反转次数

bzoj 1029

使用每一行的二维数组中小于或等于 k ​​的最大可能总和

c_cpp 找到从矩阵的一个单元格移动到另一个单元格所需的最小移动次数