7 条题解

  • 7
    @ 2024-2-16 17:29:50

    太简单了!

    (老师课上讲过)(注意顺序变为了从大到小

    参考代码
    #include <bits/stdc++.h>
    using namespace std;
    int n,pa=1,pb=1,pc=1,a[61O9326],b[61O9326];
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        for(int i=1;i<=n;i++)
            cin>>b[i];
        while(pa<=n&&pb<=n)
            if(a[pa]>=b[pb])
                cout<<a[pa++]<<" ";
            else
                cout<<b[pb++]<<" ";
        while(pa<=n)
            cout<<a[pa++]<<" ";
        while(pb<=n)
            cout<<b[pb++]<<" ";
        return O;
    }
    

    就是说这。。。 image

  • 3
    @ 2023-7-27 15:50:27

    本题较为简单,只需要按照课上所讲方法定义pa,pb,pc变量分别记录a,b,c数组下标,进行数组合并即可,注意顺序变成了从大到小。

    参考代码
    参考课内练习2
    
    • 1
      @ 2023-8-7 1:28:51

      这个问题的解决思路是利用归并排序的思想,将两个有序数组合并成一个有序数组。

      首先,我们从输入中获取数组的长度n。然后,创建两个长度为n的数组a和b,并分别读取输入的a数组和b数组的元素。

      接下来,我们创建一个长度为2n的数组merged,用于存储合并后的结果。然后,利用std::merge函数将数组a和b按照从大到小的顺序合并到数组merged中。std::merge函数是C++的STL库提供的用于合并两个有序数组的函数,它接受四个迭代器参数,分别表示两个要合并的数组的起始和结束位置,以及合并结果数组的起始位置。最后一个参数std::greater<int>()表示使用降序排序。

      最后,我们使用循环遍历输出数组merged中的元素,即得到合并后的数组元素从大到小的输出。

      这样就完成了两个有序数组的合并和输出过程。

      #include <iostream>
      #include <vector>
      #include <algorithm>
      
      int main() {
          int n;
          std::cin >> n;
      
          std::vector<int> a(n);
          for (int i = 0; i < n; ++i) {
              std::cin >> a[i];
          }
      
          std::vector<int> b(n);
          for (int i = 0; i < n; ++i) {
              std::cin >> b[i];
          }
      
          std::vector<int> merged(2 * n);
          std::merge(a.begin(), a.end(), b.begin(), b.end(), merged.begin(), std::greater<int>());
      
          for (int i = 0; i < 2 * n; ++i) {
              std::cout << merged[i] << " ";
          }
          std::cout << std::endl;
      
          return 0;
      }
      
      
    • -2
      @ 2023-8-12 11:58:25

      不走寻常路的办法:计数排序

      #include <bits/stdc++.h>
      using namespace std;
      int ab[2000005],x[1000005],n;
      int main()
      {
          cin >> n;
          for (int i = 1;i <= 2 * n;i++)
          {
              cin >> ab[i];
              x[ab[i]]++;
          }
          for (int i = 1000000;i >= 1;i--)
          {
              for (int j = 1;j <= x[i];j++)
              {
                  cout << i << " ";
              }
          }
      }
      
      • -3
        @ 2024-1-14 19:58:33
        #include <bits/stdc++.h> 
        using namespace std;
        #define ll long long
        ll n,a[2000001];
        int main(){
            std::ios::sync_with_stdio(0);
            cin>>n;
            for(ll i=1;i<=2*n;i++){
                cin>>a[i];
            }
            sort(a+1,a+n+n+1);
            for(ll i=2*n;i>=1;i--){
                cout<<a[i]<<" ";
            }
            return 0;
        }
        
        • -4
          @ 2023-10-28 21:10:58

          sort轻松解决

          #include <bits/stdc++.h>
          int main(){
              int n,a[2000005]; std::cin>>n;
              for(int i=0;i<2*n;i++)std::cin>>a[i];
              std::sort(a,a+2*n);
              for(int i=2*n-1;i>=0;i--)std::cout<<a[i]<<" ";
              return 0;}
          
        • -9
          @ 2023-9-17 19:02:35
          #include <iostream>
          #include <vector>
          #include <algorithm>
          int main() {
              int n;
              std::cin >> n;
              std::vector<int> a(n);
              for (int i = 0; i < n; ++i) {
                  std::cin >> a[i];
              }
              std::vector<int> b(n);
              for (int i = 0; i < n; ++i) {
                  std::cin >> b[i];
              }
              std::vector<int> merged(2 * n);
              std::merge(a.begin(), a.end(), b.begin(), b.end(), merged.begin(), std::greater<int>());
          
              for (int i = 0; i < 2 * n; ++i) {
                  std::cout << merged[i] << " ";
              }
              std::cout << std::endl;
              return 0;
          }
          
        • 1

        信息

        ID
        358
        时间
        1000ms
        内存
        256MiB
        难度
        3
        标签
        (无)
        递交数
        538
        已通过
        272
        上传者