【LeetCode從零單排】No121 Best Time to Buy and Sell Stock

李博Garvin發表於2015-04-01

題目

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

又是時間複雜度,離真相就差一行程式碼。。。還是沒想出來,看了discuss才知道答案。


程式碼

public class Solution {
    public int maxProfit(int[] prices) {

        if (prices.length<=0 || prices.length==1) return 0;
    	   int maxProfit=0;
    	   int minTemp=prices[0];
    	   for(int i=1;i<prices.length;i++){
    		   if(prices[i]<minTemp){
    			   minTemp=prices[i];    			 
    		   }
    		   else{
    			   if(prices[i]-minTemp>maxProfit){
    				   maxProfit=prices[i]-minTemp;
    			   }
    		   }
    	   }
    	   return maxProfit;   	
    }
}




/********************************

* 本文來自部落格  “李博Garvin“

* 轉載請標明出處:http://blog.csdn.net/buptgshengod

******************************************/


相關文章