c++中买卖股票后的最大利润

在本教程中,我们将讨论一个计划,以寻找最大利润后,买卖股票。

为此,我们将提供一个数组包含股票奖金和交易费。我们的任务是找到最大的利润从股票和天的差异来实现它。

示例

#include <bits/stdc++.h>
using namespace std;
//calculating maximum profit
int max_profit(int a[],int b[],int n,int fee) {
   int i, j, profit;
   int l, r, diff_day = 1, sum = 0;
   b[0]=0;
   b[1]=diff_day;
   for(i=1;i<n;i++) {
      l=0;
      r=diff_day;
      sum=0;
      for(j=n-1;j>=i;j--) {
         profit=(a[r]-a[l])-fee;
         //if getting loss or no profit
         if(profit>0) {
            sum=sum+profit;
         }
         l++;
         r++;
      }
      if(b[0] < sum) {
         b[0] = sum;
         b[1] = diff_day;
      }
      diff_day++;
   }
   return 0;
}
int main() {
   int arr[] = { 6, 1, 7, 2, 8, 4 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int b[2];
   int tranFee = 2;
   max_profit(arr, b, n, tranFee);
   cout << b[0] << ", " << b[1] << endl;
   return 0;
}
输出结果
8, 1