名企笔试:2015小米暑期实习(风口的猪-中国牛市)(2017-04-09 算法爱好者)
生活随笔
收集整理的這篇文章主要介紹了
名企笔试:2015小米暑期实习(风口的猪-中国牛市)(2017-04-09 算法爱好者)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
風口之下,豬都能飛。當今中國股市牛市,真可謂“錯過等七年”。 給你一個回顧歷史的機會,已知一支股票連續(xù)n天的價格走勢,以長度為n的整數(shù)數(shù)組表示,數(shù)組中第i個元素(prices[i])代表該股票第i天的股價。
假設(shè)你一開始沒有股票,但有至多兩次買入1股而后賣出1股的機會,并且買入前一定要先保證手上沒有股票。若兩次交易機會都放棄,收益為0。 設(shè)法計算你能獲得的最大收益。 輸入數(shù)值范圍:2<=n<=100,0<=prices[i]<=100
輸入例子:
3,8,5,1,7,8
輸出例子:
假設(shè)你一開始沒有股票,但有至多兩次買入1股而后賣出1股的機會,并且買入前一定要先保證手上沒有股票。若兩次交易機會都放棄,收益為0。 設(shè)法計算你能獲得的最大收益。 輸入數(shù)值范圍:2<=n<=100,0<=prices[i]<=100
輸入例子:
3,8,5,1,7,8
輸出例子:
12
C++源代碼:
// xiaomi problem 2017.04.09 // 2017.04.10 by wyj/* 名企筆試:2015小米暑期實習(風口的豬-中國牛市) 2017-04-09 算法愛好者風口之下,豬都能飛。當今中國股市牛市,真可謂“錯過等七年”。 給你一個回顧歷史的機會,已知一支股票連續(xù)n天的價格走勢,以長度為n的整數(shù)數(shù)組表示,數(shù)組中第i個元素(prices[i])代表該股票第i天的股價。假設(shè)你一開始沒有股票,但有至多兩次買入1股而后賣出1股的機會,并且買入前一定要先保證手上沒有股票。若兩次交易機會都放棄,收益為0。 設(shè)法計算你能獲得的最大收益。 輸入數(shù)值范圍:2<=n<=100,0<=prices[i]<=100輸入例子: 3,8,5,1,7,8輸出例子: 12 */#include#include #include using namespace std;// 主函數(shù) int main() {float max_dif(float a[], int n);int n,i=0,j=0;float max_profit = 0, max_profit1[100], max_profit2[100];float price[100], price1[100], price2[100];while (cin >> price[i++], getchar() != '\n');n = i;for (j = 0;j < n;j++){memcpy(price1, price, sizeof(float) * (j+1));memcpy(price2, price + j, sizeof(float) * (n - j));max_profit1[j] = max_dif(price1, j + 1);max_profit2[j] = max_dif(price2, n - j);float t = max_profit1[j] + max_profit2[j];if (max_profit < t)max_profit = t;}cout << max_profit << endl;return 0; }// 求數(shù)組最大差值(后面減前面) float max_dif(float a[], int n) {int i, j;float max_dif = 0;for (i = 0;i < n;i++){for (j = i;j < n;j++){if (max_dif < a[j] - a[i])max_dif = a[j] - a[i];}}return max_dif; }總結(jié)
以上是生活随笔為你收集整理的名企笔试:2015小米暑期实习(风口的猪-中国牛市)(2017-04-09 算法爱好者)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。