Dynamic Programming: Basics and a Practical Example

Introduction: Dynamic programming is a problem-solving technique that can seem quite intimidating at first glance. However, once you grasp its fundamentals and see it in action, you'll find it to be a powerful tool in your coding arsenal. In this blog post, we'll demystify the basics of dynamic programming and walk through a practical example. We'll provide you with clear explanations and a complete Python program, so you can understand and apply this essential concept with confidence. Understanding Dynamic Programming: At its core, dynamic programming is all about breaking down a complex problem into smaller, overlapping subproblems. It's a technique used to efficiently solve problems by storing and reusing solutions to these subproblems, rather than recomputing them. This leads to significant improvements in runtime complexity. Example: Fibonacci Sequence with Dynamic Programming Let's start by tackling a classic problem: calculating Fibonacci numbers. The Fibonac...

Array Transformation | biweekly-contest-12 | leetcode | Java Solution

Question Source

Java Solution:

class Solution {
    public List<Integer> transformArray(int[] arr) {
        
        while(true) {
            boolean isChanged = false;
            int []copy = arr.clone();
            
            for(int i = 1; i < arr.length-1; i++) {
               
                if(arr[i-1] > arr[i] && arr[i+1] > arr[i]) {
                    copy[i]++;
                    isChanged = true;
                }else if(arr[i-1] < arr[i] && arr[i+1] < arr[i]) {
                    copy[i]--;
                    isChanged = true;
                }
                
            }

            arr = copy.clone();
            if(!isChanged) {
                break;
            }
        }
        
        List<Integer> res = new ArrayList<>();
        for(int i:arr) {
            res.add(i);
        }
        
        return res;
    }

}

Comments

Popular posts from this blog

Dynamic Programming: Basics and a Practical Example

leetcode | Longest Substring Without Repeating Characters Solution