1. 程式人生 > >計蒜客列印鋸齒矩陣

計蒜客列印鋸齒矩陣

1.問題描述:

2.演算法分析:

因為發現數組的長度不是固定的,而是可變的,所以我們不能使用靜態陣列,我們可以使用動態陣列vector來做。先確定使用的資料結構vector 然後就是先對陣列賦值,將比如上題將12個元素賦值, 然後有一個要注意的點,就是如果某一行都沒有資料,那麼,直接換行空一行出來。 當沒有資料的時候vector陣列的長度必然為0 再依次列印即可。

3.原始碼分析:

#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;

int main()
{
    vector<int> nums[10000];
    int n,m;
    cin>>n>>m;
    for(int i = 0;i<m;i++)
    {
        int x,y;
        cin>>x>>y;
        nums[x-1].push_back(y);
    }

    for(int i = 0;i<n;i++)
    {
        if(!nums[i].size())   //判斷某一行是否為空 
        {
            cout<<endl;
            continue;
        }
        for(int j = 0;j<nums[i].size();j++)
        {
            if(j == nums[i].size()-1)    //這一步操作是讓輸出每一行最後一個元素後面無空格 
            {
                cout<<nums[i][j]<<endl;
                break;
            }
            cout<<nums[i][j]<<" ";
        }
    }
    return 0;
}