はじめに
LeetCodeの問題を解答します。
なるべく、問題の和訳と詳細なコメントを書いています。
余裕があれば、複数のアプローチの解答と、実際の面接を想定して英語での解法やコメントを書いています。
様々なカテゴリの問題をランダムにあたる方法も良いですが、
二分探索、連結リストなど、テーマを絞って集中的に解いた方が練習しやすい方は以下の記事が有用です。
テーマごとに問題を分類しました。
LeeetCodeの問題をアルゴリズムとデータ構造による分類しました。
また、LeetCodeではAtcoderと違ってクラスと関数を定義して解答します。
LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめています。
はじめてLeetCodeに触れる方はこちらの記事も役に立つと思います。
詳細
問題
原文
There is a biker going on a road trip. The road trip consists of
n + 1
points at different altitudes. The biker starts his trip on point0
with altitude equal0
.You are given an integer array
gain
of lengthn
wheregain[i]
is the net gain in altitude between pointsi
andi + 1
for all (0 <= i < n)
. Return the highest altitude of a point.
Example 1:
123 Input: gain = [-5,1,5,0,-7]Output: 1Explanation: The altitudes are [0,-5,-4,1,1,-6]. The highest is 1.Example 2:
123 Input: gain = [-4,-3,-2,-1,4,3,2]Output: 0Explanation: The altitudes are [0,-4,-7,-9,-10,-6,-3,-1]. The highest is 0.
Constraints:
n == gain.length
1 <= n <= 100
-100 <= gain[i] <= 100
内容(和訳)
バイカーがロードトリップに出かけます。ロードトリップは異なる高度を持つn + 1個のポイントで構成されています。バイカーは高度0のポイント0から旅を始めます。
長さnの整数配列gainが与えられます。ここで、gain[i]はすべての(0 <= i < n)において、ポイントiとi + 1の間の純高度の変化を表します。ポイントの最高高度を返します。
※chatGPTによる翻訳
解答
解答1:Python
1 2 3 4 5 6 7 8 9 10 11 |
class Solution: def largestAltitude(self, gain: List[int]) -> int: altitude = 0 max_altitude = 0 for i in gain: altitude += i max_altitude = max(max_altitude, altitude) if max_altitude < 0: return 0 else: return max_altitude |
終わりに
補足・参考・感想
問題を分類しました。テーマごとに集中して問題を解くことができます。
LeeetCodeの問題をアルゴリズムとデータ構造による分類
LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめました。
他の問題もどうぞ
前:643. Maximum Average Subarray I
コメント