给个数组,含以往各天股票价格。计算其最大的盈利。高价-它之前的低价 // stock, buy it at lowest price, sellit at higheset price, count their difference int maxDiff(int a[], int n) { int md = 0; int least = 0; if (!n) return 0; //assert (a); for (int i =1; i < n; i++) { if (a[i] - a[least] > md) { md = a[i] - a[least]; least = i; } else if (a[i] < a[least]) least = i; } return md; } 调用计算: int main (int argc, char * const argv[]) { // insert code here... std::cout << "Hello, World!/n/n"; int inta[6] = { 4,8,2,5,4,7}; //int inta[1] = { 4 }; int n = sizeof(inta)/sizeof(int); int r = maxDiff(inta, n); cout << r <<endl; std::cout<<"/nGoodbye!"; return 0; } 返回 5