LeetCode - 주식 매매 적기 II
2219 단어 LeetCode
배열 을 지정 합 니 다. i 개의 요 소 는 주어진 주식 의 i 일 째 가격 이다.
당신 이 얻 을 수 있 는 최대 이윤 을 계산 하기 위해 알고리즘 을 설계 하 세 요.너 는 가능 한 한 더 많은 거래 를 완성 할 수 있다.
주의: 당신 은 여러 가지 거래 에 동시에 참여 할 수 없습니다.
예시 1:
: [7,1,5,3,6,4]
: 7
: 2 ( = 1) , 3 ( = 5) , = 5-1 = 4 。
, 4 ( = 3) , 5 ( = 6) , = 6-3 = 3 。
예시 2:
: [1,2,3,4,5]
: 4
: 1 ( = 1) , 5 ( = 5) , = 5-1 = 4 。
1 2 , 。
, 。
예시 3:
: [7,6,4,3,1]
: 0
: , , 0。
이 문제 의 주 제 를 분석 해 보 자. 주식 이 저렴 한 가격 에 매입 하고 높 은 가격 에 내 놓 는 것 임 을 감안 하여 최대 이윤 을 요구 하 는 것 은 대체적으로 우리 로 하여 금 최대 의 상승 과 하락 을 추구 하 게 하 는 것 이다.[5, 4, 3, 2, 1] 이렇게 떨 어 지면 이윤 이 0 이 고 [1, 2, 3, 4, 5] 라면 최대 이윤 은 4 다.
[1, 3, 2, 4, 5] 이렇게 올 라 가 고 내 려 가 는 거 라면?우 리 는 1 - > 3, 2 - > 5 곳 에서 총 이윤 을 5 로 얻 을 수 있다 는 것 을 알 았 다.응?2 - > 5 는 2 - > 4 - > 5 로 나 눌 수 있 고 이윤 은 같다.다시 [1, 2, 3, 4, 5] 를 보면 우 리 는 이것 이 사실은 이웃 을 구 하 는 순서 가 맞 는 문제 라 는 것 을 알 게 되 었 다.(순서 쌍 은 a 가 앞 에 있 고 b 가 뒤에 있 으 며 a < b) 를 가리킨다.그래서 우 리 는 인접 한 두 가지 차 이 를 통계 하고 0 보다 크 면 이 차 이 를 이윤 에 넣 어야 한다.
int maxProfit(int* prices, int pricesSize) {
if(pricesSize<=1) return 0;
int tot=0;
for(int i=0;i+1if(prices[i+1]>prices[i])
tot+=prices[i+1]-prices[i];
return tot;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.