Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions 121.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## 何も見ずに解いてみる

```cpp
class Solution {
public:
int maxProfit(vector<int>& prices) {
int max_profit = 0;
int min_price = std::numeric_limits<int>::max();
for (int price : prices) {
max_profit = std::max(max_profit, price - min_price);
min_price = std::min(price, min_price);
}
return max_profit;
}
};
```

## 他の人のコードを見る

https://github.com/ryosuketc/leetcode_arai60/pull/50/files
https://github.com/tokuhirat/LeetCode/pull/37/files
https://github.com/irohafternoon/LeetCode/pull/40/files
https://github.com/Ryotaro25/leetcode_first60/pull/41/files

後ろから見ていくと逆に最大値を記録することで解けるというのはたしかにという感じだった。

## 最終コード

min_priceとmax_profitを操作する順番を変えてみました。
`変数 = max(変数, 新しい候補)`みたいなことをやるときは`max(新しい候補, 変数)`よりは`変数 = max(変数, 新しい候補)`の方がよさそうでしょうか。

```cpp
class Solution {
public:
int maxProfit(std::vector<int>& prices) {
int min_price = std::numeric_limits<int>::max();
int max_profit = 0;
for (int price : prices) {
min_price = std::min(min_price, price);
max_profit = std::max(max_profit, price - min_price);
}
return max_profit;
}
};

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

読みやすいです。

```