From 588a6b8989aa2b633cbbf007171ac80184159978 Mon Sep 17 00:00:00 2001 From: Vipanshu Suman <73050057+vipu18@users.noreply.github.com> Date: Thu, 2 Oct 2025 13:53:01 +0530 Subject: [PATCH] Implement space optimized Frog Jump solution --- CPP/dynamic-programming/Frog_Jump.cpp | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 CPP/dynamic-programming/Frog_Jump.cpp diff --git a/CPP/dynamic-programming/Frog_Jump.cpp b/CPP/dynamic-programming/Frog_Jump.cpp new file mode 100644 index 0000000..c4547b1 --- /dev/null +++ b/CPP/dynamic-programming/Frog_Jump.cpp @@ -0,0 +1,38 @@ +#include +#include +#include +#include +using namespace std; + +// Space Optimized Solution +class Solution { +public: + int frogJump(vector& heights) { + int n = heights.size(); + int prev = 0, prev2 = 0; + for(int i = 1; i < n; i++) { + int fs = prev + abs(heights[i] - heights[i-1]); + int ss = INT_MAX; + if(i > 1) ss = prev2 + abs(heights[i] - heights[i-2]); + int curr = min(fs, ss); + prev2 = prev; + prev = curr; + } + return prev; + } +}; + +int main() { + int n; + cout << "Enter number of stones: "; + cin >> n; + vector heights(n); + cout << "Enter heights: "; + for(int i = 0; i < n; ++i) { + cin >> heights[i]; + } + Solution sol; + int result = sol.frogJump(heights); + cout << "Minimum energy: " << result << endl; + return 0; +}