
- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Minimum Number of Jumps Problem
In this problem, a list of positive integers is given. Each integer is denoting that how many maximum steps that can be made from the current element. Starting from the first element, we have to find the minimum number of jumps to reach the end item of the list.
For the dynamic programming approach, a jumps array is defined to store the minimum number of jumps required. Like for a value of jumps[i], it indicates that how many minimum jumps are needed to reach the ith index of the array from the 0th index.
Input and Output
Input: A list of integers. {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9} Output: The minimum number of jumps to reach the end location. It is 3. Start from value 1, go to 3. then jumps 3 values and reach 8. then jump 8 values and reach the last element.
Algorithm
minPossibleJump(list, n)
Input: Number array, number of elements in the array.
Output: Minimum number of jumps required to reach at the end.
Begin define an array named jump of size n if n = 0 or list[0] = 0, then return ∞ jump[0] := 0 for i := 1 to n, do jumps[i] := ∞ for j := 0 to i, do if i <= j + list[j] and jump[j] ≠ ∞, then jump[i] := minimum of jump[i] and (jump[j] + 1) break the loop done done return jump[n-1] End
Example
#include<iostream> using namespace std; int min(int x, int y) { return (x < y)? x: y; } int minPossibleJump(int list[], int n) { int *jumps = new int[n]; // dynamically create jumps array to store steps if (n == 0 || list[0] == 0) return INT_MAX; jumps[0] = 0; for (int i = 1; i < n; i++) { jumps[i] = INT_MAX; //initially set jumps as infinity for (int j = 0; j < i; j++) { if (i <= j + list[j] && jumps[j] != INT_MAX) { jumps[i] = min(jumps[i], jumps[j] + 1); break; } } } return jumps[n-1]; } int main() { int list[] = {1, 3, 5, 8, 9, 2, 6, 7, 6, 8, 9}; int size = 11; cout << "Minimum number of jumps to reach end is: "<< minPossibleJump(list,size); return 0; }
Output
Minimum number of jumps to reach end is: 3
- Related Questions & Answers
- Minimum Number of Platforms Problem
- C Program for Minimum number of jumps to reach the end
- Minimum Coin Change Problem
- How to find the minimum number of jumps required to reach the end of the array using C#?
- Minimum Word Break Problem in C++
- Program to find minimum jumps to reach home in Python
- C Program for Number of stopping station problem
- Python Program for Number of stopping station problem
- Find if two people ever meet after same number of jumps in C++
- Find the number of jumps to reach X in the number line from zero in C++
- Minimum number of bombs in Java
- Linked List Jumps in C++
- Program to Find Minimum Jumps Required to Reach a Value with Different Parity in Python
- Bin Packing Problem (Minimize number of used Bins) in C++?
- Allocate minimum number of pages in C++
Advertisements