문제풀이
Leetcode Best Time to Buy and Sell Stock JAVA
AndoneKwon
2021. 1. 4. 01:18
이 문제는 언듯 보기에 N^2으로 풀어야 할거 같지만..
아니다..
왜냐면 그 상황에서 가장 작은 배열의 요소를 빼주면 되기 떄문이다.(뒷 부분에 더 작은 것이 있다면 그것을 이용한다)
그래서 그 구한 값이 최대가 되는 값을 모든 배열 요소에 대해서 업데이트 해주면 된다.
class Solution {
public int maxProfit(int[] prices) {
int priceMin = Integer.MAX_VALUE;
int answerMax = 0;
for(int item : prices){
priceMin = Math.min(priceMin,item);
answerMax = Math.max(answerMax,item-priceMin);
}
return answerMax;
}
}