买卖股票的最佳时机

it2022-05-09  14

题目:

买卖股票的最佳时机

 

描述:假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。

 

样例

 

给出一个数组样例 [3,2,3,1,2], 返回 1

 

思考:

我认为买卖股票的最佳时机是以最低的价格买入,以最高的价格抛出。所以是求最大差值(但是这样的理解好像有误区)

 

源码:

方式一:

package day01; public class maxProfit { public static void main(String[] args) { // TODO Auto-generated method stub int arr []={3,2,3,1,2}; System.out.println(maxProfit(arr)); } public static int maxProfit(int [] prices) { // write your code here int i, d,j; int max = 0; for(i = 0; i < prices.length-1; i++) for (j=1;j<prices.length;j++){ d = prices[j] - prices[i]; if(d > 0&d>max){ max=d; } } return max; } }

 

 

方式二:

package day01; import java.util.Arrays; public class maxProfit_ { public static void main(String[] args) { // TODO Auto-generated method stub int arr []={3,2,3,1,2}; System.out.println(maxProfit(arr)); } public static int maxProfit(int [] prices) { int i=0,max=0; Arrays.sort(prices); max=prices[prices.length-1]-prices[0]; return max; } }

 

转载于:https://www.cnblogs.com/sunssh/p/6522504.html


最新回复(0)