zoukankan      html  css  js  c++  java
  • 若干有序合并成依然有序的序列

    #if 1
    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cstdlib>
    #include <sstream>
    #include <iostream>
    #include <string>
    #include <vector>
    #include <list>
    #include <iostream>
    #include <algorithm>
    #include <numeric>
    #include <cstdlib>
    #include <cstdio>
    #include<stack>
    #include <string>
    #include <set>
    #include <sstream>
    #include <iterator>
    using namespace std;
    vector<int> MergeList(vector<int>  list1, vector<int>  list2){
        vector<int> result;
        int i = 0, j = 0;
        for (; i < list1.size() && j < list2.size();){
            if (list1[i] < list2[j]){
                result.push_back(list1[i]);
                    i++;
            }
            else{
                result.push_back(list2[j]);
                j++;
            }
        }
    
        while (i < list1.size()){
            result.push_back(list1[i]);
                i++;
        }
    
        while (j < list2.size()){
            result.push_back(list2[j]);
            j++;
        }
    
        return result;
    }
    vector<int>* Merge(vector<vector<int>> vect){
        vector<int> result;
        if (vect.size() < 1)
            return NULL;
        result = vect[0];
        for (int i = 1; i< vect.size(); i++){
            result = MergeList(result, vect[i]);
        }
        return &result;
    }
    
    vector<int> Merge1(vector<vector<int>>& vect){
        vector<int> result,result1;
        if (vect.size() < 1)
            return result;
        result = vect[0];
        
        for (int i = 1; i < vect.size(); i++){
            result1.resize(vect[i].size() + result.size());
            merge(vect[i].begin(), vect[i].end(), result.begin(), result.end(), result1.begin());
            result = result1;
        }
        return result;
    }
    
    vector<int> testSplit(string srcStr, const string& delim)
    {
        int nPos = 0;
        vector<int> vec;
        nPos = srcStr.find(delim.c_str());
        while (-1 != nPos)
        {
            string temp = srcStr.substr(0, nPos);
            vec.push_back(stoi(temp));
            srcStr = srcStr.substr(nPos + 1);
            nPos = srcStr.find(delim.c_str());
        }
        vec.push_back(stoi(srcStr));
        for (auto i:vec)
        {
            cout << i << endl;
        }
        return vec;
    }
    int main()
    {
        int num = 0, b = 0;
        string name,subname;
        cin >> num;
        vector<vector<int>> vvi(num);
        cin.ignore(199, '
    ');
        for (int i = 0;i <num;i++)
        {
            getline(cin, name);
            vvi[i]=testSplit(name,",");
            //cin.ignore(199, '
    ');
        }
        for (int i = 0; i < vvi.size();i++)
        {
            for (int j = 0; j < vvi[i].size();j++)
            {
                cout << vvi[i][j] << " ";
            }
            cout << endl;
        }
        vector<int> vi=Merge1(vvi);
        for (auto v:vi)
        {
            cout << v << " ";
        }
        cout << endl;
        system("pause");
    }
    #endif
  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/bwbfight/p/11334130.html
Copyright © 2011-2022 走看看