2 条题解

  • 1
    @ 2022-9-8 12:41:26

    简单的分治法求最大值。

    递归时每次将数组平分成两部分直到区间里只剩一个数,此时这个数就是这段区间里的最大值。最后只要将两个区间里的最大值比较返回即可(类似归并排序)。

    核心代码:

    int dmax(int l,int r){
        if (l==r){
            return a[l];
        }
        int mid=(l+r)/2;
        return max(dmax(l,mid),dmax(mid+1,r));
    }
    
    • 0
      @ 2022-10-5 21:29:38

      这道题我乍一看很简单,提交一次AC

      没什么可说的,数组输入完直接在循环里用max函数求出最大值,最后输出答案和坐标即可

      OK,废话到此为止,AC代码如下:

      #include <bits/stdc++.h>
       using namespace std; 
      int a[10001],ans,n,maxx;
       int main()
       { 
      cin>>n; 
      for(int i=1;i<=n;i++)
       { cin>>a[i]; 
      maxx=max(maxx,a[i]);
       } 
      cout<<maxx<<" "<<a[maxx];
      

      } 刚刚入站,希望支持一下,给个点赞😄 for :正在努力a题的小z;

      • 1

      信息

      ID
      680
      时间
      1000ms
      内存
      16MiB
      难度
      3
      标签
      递交数
      55
      已通过
      29
      上传者