d587 - 參貳壹真好吃
題目描述
題目要求將一個由 1、2、3 組成的數列按照從小到大的順序輸出。
解題思路
這題的解題思路是統計數列中 1、2、3 分別出現的次數,然後按照 1、2、3 的順序輸出對應次數的數字。由於題目保證輸入數列只包含 1、2、3,因此只需要簡單的計數和輸出即可。
複雜度分析
- 時間複雜度: O(n)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main (){
int n=0;
int x=0;
int b=0;
int c=0;
while (cin >> n){
int a[n];
for(int i=0;i<n;i++){
cin >> a[i];
if(a[i]==1){
x++;
}
if(a[i]==2){
b++;
}
if(a[i]==3){
c++;
}
}
for(int i=0;i<x;i++){
cout << 1 << " ";
}
for(int i=0;i<b;i++){
cout << 2 << " ";
}
for(int i=0;i<c;i++){
cout << 3 << " ";
}
cout << endl;
int x=0;
int b=0;
int c=0;
}
}