挑战程序设计竞赛
Maximum Profit(第二章)
#include<iostream>
#include<algorithm>
using namespace std;
static const int MAX = 200000;
int main()
{
int r[MAX], n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> r[i];
int maxv = -2000000000;
int minv = r[0];
for (int i = 1; i < n; i++)
{
maxv = max(maxv, r[i] - minv);
minv = min(minv, r[i]);
}
cout << maxv << endl;
system("pause");
return 0;
}
每次更新最大值和最小值,
第三章 初等排序
- 插入排序
void insertionSort(int A[], int N) {
int i, j, v;
for (i = 1; i < N; i++) {
v = A[i];
j = i - 1;
while (j >= 0 && A[j] > v) {
A[j + 1] = A[j];
j--;
}
A[j + 1] = v;
}
}
A[j+1] = A[j]; 用前一值替代后一个 即向后移动