スポンサーリンク

【LeetCode】1431. Kids With the Greatest Number of Candies 解答・解説【Python】

スポンサーリンク
スポンサーリンク
この記事は約4分で読めます。

はじめに

LeetCodeの問題を解答します。

なるべく、問題の和訳と詳細なコメントを書いています。

余裕があれば、複数のアプローチの解答と、実際の面接を想定して英語での解法やコメントを書いています。

 

様々なカテゴリの問題をランダムにあたる方法も良いですが、

二分探索、連結リストなど、テーマを絞って集中的に解いた方が練習しやすい方は以下の記事が有用です。

テーマごとに問題を分類しました。

LeeetCodeの問題をアルゴリズムとデータ構造による分類しました。

 

また、LeetCodeではAtcoderと違ってクラスと関数を定義して解答します。

LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめています。

はじめてLeetCodeに触れる方はこちらの記事も役に立つと思います。

解答前に知っておくと役に立つかもしれない情報

 

 

詳細

 

問題

 

原文

There are n kids with candies. You are given an integer array candies, where each candies[i] represents the number of candies the ith kid has, and an integer extraCandies, denoting the number of extra candies that you have.

Return a boolean array result of length n, where result[i] is true if, after giving the ith kid all the extraCandies, they will have the greatest number of candies among all the kids, or false otherwise.

Note that multiple kids can have the greatest number of candies.

 

Example 1:

Example 2:

Example 3:

 

Constraints:

  • n == candies.length
  • 2 <= n <= 100
  • 1 <= candies[i] <= 100
  • 1 <= extraCandies <= 50

 

 

内容(和訳)

 

n 人の子供がキャンディーを持っています。整数の配列 candies が与えられ、各 candies[i] は i 番目の子供が持っているキャンディーの数を表し、extraCandies はあなたが持っている余分なキャンディーの数を表します。

長さ n の論理配列 result を返します。result[i] は、i 番目の子供にすべての extraCandies を与えると、すべての子供の中で最も多くのキャンディーを持つことになる場合、true を返し、そうでない場合は false を返します。

注意:複数の子供が最も多くのキャンディーを持つことができます。

 

※Bardによる翻訳

 

解答

 

解答1:Python

 

最大値を最初に取得しておき、candiesのリスト内の各要素を対象に以下の処理を行います。

extraCandiesの個数との合計が最大値以上となればTrueそれ以外はFalseを戻り値用のリストに加える。

 

 

 

終わりに

補足・参考・感想

 

問題を分類しました。テーマごとに集中して問題を解くことができます。

LeeetCodeの問題をアルゴリズムとデータ構造による分類

 

LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめました。

解答前に知っておくと役に立つかもしれない情報

 

 

疑問が解決した方は他の問題もどうぞ

前:1071. Greatest Common Divisor of Strings

次:151. Reverse Words in a String

LeetCode 解答・解説記事一覧

 

コメント