Posts

Showing posts from January, 2018

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...

HackerRank Hiring Contest

Q - 1   Programming Competition Question URL https://www.hackerrank.com/contests/hackerrank-hiring-contest/challenges/programming-competition Solution :- public class Solution {     public static void main(String[] args) throws IOException{         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));             int n = Integer.parseInt(br.readLine());         ArrayList<String> name = new ArrayList<>();         int index = 0;         int val = Integer.MIN_VALUE;             for(int i = 0;i<n;i++){             String vals[] = br.readLine().split(" ");                     name.add(vals[0]);             int tmpVal = Math.abs(Integer.parseInt(vals[1])-Integer.parse...