L'algorithme gourmand est simple: un jeu de saut

     Description du titre:

Étant donné un tableau d'entiers non négatifs, vous êtes initialement à la première position du tableau.

Chaque élément du tableau représente la longueur maximale que vous pouvez sauter à cette position.

Déterminez si vous pouvez atteindre la dernière position.

Exemple 1:

Entrée: [2,3,1,1,4]
Sortie: vrai
Explication: Nous pouvons sauter d'un pas en premier, passer de la position 0 à la position 1, puis sauter de 3 étapes de la position 1 à la dernière position.
Exemple 2:

Entrée: [3,2,1,0,4]
Sortie: faux
Explication: Quoi qu'il en soit, vous atteindrez toujours la position de l'index 3. Mais la longueur de saut maximale à cette position est de 0, vous ne pouvez donc jamais atteindre la dernière position

 

Idée: algorithme gourmand, chaque fois que vous trouvez la valeur maximale de la valeur du tableau qui peut être sautée, voyez si vous pouvez sauter à la fin grâce à cette valeur maximale. Impossible de sauter à la fin, choisissez la plus grande valeur pour sauter. Répétez ensuite l'opération ci-dessus.

class Solution {
public:
    bool canJump(vector<int>& nums) {
        int n = nums.size();
        int rightmost = 0;  //最远可以到达的地方

		//遍历数组
        for (int i = 0; i < n; ++i) {
            if (i <= rightmost) {
				//如果较大值可以到达,则说明可以到达
                rightmost = max(rightmost, i + nums[i]);
                if (rightmost >= n - 1) {
                    return true;
                }
            }
        }
        return false;
    }
};

 

Adresse de référence: https://leetcode-cn.com/problems/jump-game/solution/tiao-yue-you-xi-by-leetcode-solution/

Je suppose que tu aimes

Origine blog.csdn.net/ma2595162349/article/details/108883444
conseillé
Classement