CE?!
  • 板块P2681 众数
  • 楼主U_stinian
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/5 10:58
  • 上次更新2023/11/2 15:34:47
查看原帖
CE?!
1007656
U_stinian楼主2023/10/5 10:58
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,m;
ll a[1000];
void quickSort(int a[], int low, int high){
    if(low<high){
        int i = low,j = high,p = a[low];
        while(i<j){
            while(a[j]>=p) j--;
            if(i<j) a[i++] = a[j];
            while(a[i]<=p){
                i++;
            }
            if(i<j) a[j--] = a[i];
        }
        a[i] = p;
        quickSort(a, low, i - 1);
        quickSort(a, i + 1, high);
    }
}

int findMode(int a[], int len) {
    int mode = a[0]; // 假设第一个元素为众数
    int cc = 1; // 计数器
    int maxCount = 1;//最大数字 

    for(int i=0;i<len;i++){//len-1
        if(a[i] == a[i - 1]){
            cc++;
        } else cc = 1;

        if(cc > maxCount){
            mode = a[i];
            maxCount = cc;
        }
    }
    return mode;
}
int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++) cin>>a[i];
	int x,y;
	bool flag;
	for(int i=0;i<m;i++){
		cin>>flag>>x>>y;
	}
	for(int i=0;i<m;i++){//循环访问 
		if(flag==0){
	    	int len = sizeof(a) / sizeof(a[0]);
		    quickSort(a, 0, len - 1);
		    int mode = findMode(a, len);
		    cout<<mode<<endl;
		} 
		else if(flag==1) a[x]=y;
	}
}
2023/10/5 10:58
加载中...