1. 程式人生 > >求數對之差的最大值

求數對之差的最大值

在這裡插入圖片描述

#include<iostream>
#include<cstdio>
#include<climits>
#include<algorithm>

using namespace std;

int a[100000];

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        for(int i=0; i<n; i++)
        {
            scanf
("%d",&a[i]); } /* 首先,遍歷陣列,找到所有的差值,然後,從所有差值中找出最大值。 不過超時了QAQ int max = INT_MIN; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(a[i]-a[j]>max) max = a[i]-a[j]; } } printf("%d\n",max); */
//動態規劃 int dif = 0; //儲存差的最大值 int m = a[0]; //儲存數的最大值 for(int i=0; i<n; i++) { diff = max(diff,m-a[i]); m = max(m,a[i]); } printf("%d\n",diff); } return 0; }