基于java計(jì)算買(mǎi)賣(mài)股票的最佳時(shí)機(jī)
這篇文章主要介紹了基于java計(jì)算買(mǎi)賣(mài)股票的最佳時(shí)機(jī),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
問(wèn)題:

可以將問(wèn)題轉(zhuǎn)化為如下圖所示,即求多個(gè)累計(jì)的收入差

分析:
如果當(dāng)前位置i的價(jià)格比i+1的價(jià)格高,則當(dāng)前不是買(mǎi)入點(diǎn),則繼續(xù)判斷下一個(gè)位置,
如果當(dāng)前位置i的價(jià)格比i+1的價(jià)格低,并且i+1仍比i+1+1低,則在當(dāng)前位置買(mǎi)入,知道i+n比i+n+1大時(shí),賣(mài)出。
繼續(xù)下一輪判斷
package com.example.demo;
public class Test121 {
/**
* 多個(gè)
*
* @param prices
* @return
*/
public int maxProfit(int[] prices) {
if (prices == null || prices.length == 0) {
return 0;
}
int cur = 0;
int vally = prices[0];
int peak = 0;
int income = 0;
while (cur < prices.length - 1) {
//找到賣(mài)出點(diǎn),谷底
while (cur < prices.length - 1 && prices[cur] >= prices[cur + 1]) {
cur++;
}
vally = prices[cur];
//找到比當(dāng)前大的值(即最高點(diǎn),頂峰)
while (cur < prices.length - 1 && prices[cur] <= prices[cur + 1]) {
cur++;
}
peak = prices[cur];
income += peak - vally;
//如果此時(shí)cur仍然沒(méi)有到最后,則進(jìn)行再一次循環(huán)
}
return income;
}
public static void main(String[] args) {
Test121 t = new Test121();
int[] arr = {7, 1, 5, 3, 6, 4};
int i = t.maxProfit(arr);
System.out.println(i);
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Maven項(xiàng)目打Jar包并添加依賴(lài)步驟詳解
這篇文章主要介紹了Maven項(xiàng)目打Jar包并添加依賴(lài)步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
Java類(lèi)的初始化順序的實(shí)現(xiàn)
類(lèi)的初始化過(guò)程是在類(lèi)加載階段完成的,包括加載、驗(yàn)證、準(zhǔn)備、解析和初始化等步驟,本文主要介紹了Java類(lèi)的初始化順序的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12
SpringMVC請(qǐng)求、響應(yīng)和攔截器的使用實(shí)例詳解
攔截器(Interceptor) 它是一個(gè)Spring組件,并由Spring容器管理,并不依賴(lài)Tomcat等容器,是可以單獨(dú)使用的,這篇文章給大家介紹SpringMVC請(qǐng)求、響應(yīng)和攔截器的使用,感興趣的朋友一起看看吧2024-03-03
SpringCloud Gateway HttpWebHandlerAdapter鏈路調(diào)用請(qǐng)求流程介
Spring Cloud Gateway旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的、統(tǒng)一的 API 路由管理方式。Spring Cloud Gateway 作為 Spring Cloud 生態(tài)系中的網(wǎng)關(guān),它不僅提供統(tǒng)一的路由方式,并且基于 Filter 鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全、監(jiān)控/埋點(diǎn)和限流等2022-10-10

