NC236. 最大差值
描述
有一个长为 n 的数组 A ,求满足 0 ≤ a ≤ b < n 的 A[b] - A[a] 的最大值。
给定数组 A 及它的大小 n ,请返回最大差值。
示例1
输入:
[5,1],2
输出:
0
示例2
输入:
[5,6],2
输出:
1
Rust 解法, 执行用时: 27ms, 内存消耗: 6400KB, 提交时间: 2022-05-06
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A int整型一维数组 * @param n int整型 * @return int整型 */ pub fn getDis(&self, A: Vec<i32>, n: i32) -> i32 { let mut pre_min = A[0]; let mut res = i32::MIN; for num in A { if num < pre_min { pre_min = num; } else if num - pre_min > res { res = num - pre_min; } } res } }
C++ 解法, 执行用时: 30ms, 内存消耗: 7824KB, 提交时间: 2022-05-08
static const auto io_sync_off = []() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); return nullptr; } (); class Solution { public: int getDis(vector<int>& A, int n) { int d[n]; d[0] = A[0]; int r = 0; for (int i = 1; i < n; ++i) { if (A[i] < d[i - 1]) d[i] = A[i]; else d[i] = d[i - 1]; } for (int i = 1; i < n; ++i) { if (A[i] - d[i] > r) r = A[i] - d[i]; } return r; } };
C++ 解法, 执行用时: 31ms, 内存消耗: 7872KB, 提交时间: 2022-04-25
static const auto io_sync_off = []() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); return nullptr; } (); class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A int整型vector * @param n int整型 * @return int整型 */ int getDis(vector<int>& A, int n) { // write code here int dp[n]; dp[0] = A[0]; int res = 0; for (int i = 1; i < n; ++i) { if (A[i] < dp[i - 1]) dp[i] = A[i]; else dp[i] = dp[i - 1]; } for (int i = 1; i < n; ++i) { if (A[i] - dp[i] > res) res = A[i] - dp[i]; } return res; } };
C++ 解法, 执行用时: 38ms, 内存消耗: 9920KB, 提交时间: 2022-02-27
static const auto io_sync_off = []() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); return nullptr; }(); class Solution { public: int getDis(vector<int>& A, int n) { int dp[n]; dp[0]=A[0]; int res=0; for(int i=1; i<n; ++i){ if(A[i]<dp[i-1]) dp[i]=A[i]; else dp[i]=dp[i-1]; } for(int i=1; i<n; ++i){ if(A[i]-dp[i]>res) res=A[i]-dp[i]; } return res; } };
C 解法, 执行用时: 50ms, 内存消耗: 8044KB, 提交时间: 2022-01-27
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param A int整型一维数组 * @param ALen int A数组长度 * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定义 */ int getDis(int* A, int ALen, int n ) { // write code here int max=0,min=A[0]; for(int i=0;i<n;i++) { if(min>A[i]) min=A[i]; if(max<A[i]-min) max=A[i]-min; } return max; }