zoukankan      html  css  js  c++  java
  • uva 11078 Open Credit System

    https://vjudge.net/problem/UVA-11078

    题意:

    给出一个整数序列,要求找出两个位置i,j(i < j),Ai - Aj的值最大,并且输出这个最大值。

    思路:

    原来我考虑的是一边遍历,一边排序,求Aj - Ai的最小值,然后总的复杂度是O(NlogN),但是没有想到这样都tle了,贴上代码警示。

     1 #include <stdio.h>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 int a[100005];
     6 
     7 int main()
     8 {
     9     int t;
    10 
    11     scanf("%d",&t);
    12 
    13     while(t--)
    14     {
    15         int n;
    16 
    17         scanf("%d",&n);
    18 
    19         int ans = 100000000;
    20 
    21         for (int i = 1;i <= n;i++)
    22         {
    23             scanf("%d",&a[i]);
    24         }
    25 
    26         //int maxn = a[1];
    27 
    28         for (int i = 2;i <= n;i++)
    29         {
    30             sort(a+1,a+i);
    31 
    32             ans = min(ans,a[i] - a[i-1]);
    33         }
    34 
    35         printf("%d
    ",-ans);
    36     }
    37 
    38     return 0;
    39 }

    后来呢,那么这个都过不了,只有用线性的时间喽,所以就动态更新这个坐标之前的最大值,那么最大值肯定是某个坐标前面的最大值静减去当前值,所以就可以O(N)得出答案。

    代码:

     1 #include <stdio.h>
     2 #include <algorithm>
     3 using namespace std;
     4 
     5 int a[100005];
     6 
     7 int main()
     8 {
     9     int t;
    10 
    11     scanf("%d",&t);
    12 
    13     while(t--)
    14     {
    15         int n;
    16 
    17         scanf("%d",&n);
    18 
    19         int ans = -100000000;
    20 
    21         for (int i = 1;i <= n;i++)
    22         {
    23             scanf("%d",&a[i]);
    24         }
    25 
    26         int maxn = a[1];
    27 
    28         for (int i = 2;i <= n;i++)
    29         {
    30             ans = max(maxn - a[i],ans);
    31 
    32             maxn = max(a[i],maxn);
    33         }
    34 
    35         printf("%d
    ",ans);
    36     }
    37 
    38     return 0;
    39 }
  • 相关阅读:
    clone()与clone(true)的区别
    内部插入节点的方法
    jquery动态创建页面元素
    removeClass() 方法
    addClass() 和 toggleClass()
    CSS()方法设置元素样式
    val()方法
    html() 和 text() 方法的区别
    C#导出Excel那些事
    Winform控件重写
  • 原文地址:https://www.cnblogs.com/kickit/p/7620016.html
Copyright © 2011-2022 走看看