首页 > 试题广场 >

最大差值

[编程题]最大差值
  • 热度指数:12049 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

有一个长为 n 的数组 A ,求满足 0 ≤ a ≤ b < n 的 A[b] - A[a] 的最大值。

给定数组 A 及它的大小 n ,请返回最大差值。


数据范围: ,数组中的值满足
示例1

输入

[5,1],2

输出

0
示例2

输入

[5,6],2

输出

1
//最后有两个用例超时 但是基本的思路是没错的

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param A int整型一维数组 
 * @param ALen int A数组长度
 * @param n int整型 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
long getDis(int* A, int ALen, int n ) {
    int num[200000]={0};
    for(int i=0;i<n;i++){
        num[i]=i;
    
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-1-i;j++){
            if(A[j]>A[j+1]){
                int temp=A[j];
                A[j]=A[j+1];
                A[j+1]=temp;
                int temp_1=num[j];     //交换下标 
                num[j]=num[j+1];
                num[j+1]=temp_1;
            }
        
    }
    long long max=0;
    for(int i=n-1;i>0;i--){
        for(int j=i-1;j>=0;j--){
            if(num[i]>num[j]){
                if(A[i]-A[j]>max){
                    max=A[i]-A[j];
                }
            }
        }
    
    return max;
}
发表于 2022-01-17 10:05:00 回复(0)

问题信息

难度:
1条回答 3015浏览

热门推荐

通过挑战的用户

查看代码