Author: dharam

Details of Aspect Oriented Programming

Introduction This is a series and it would make a lot of sense if read in a sequence. You can find all the posts under the heading "Spring Beginners to Professionals". This is the second post of the series. Before diving into the Spring Framework, I would like to explain few generic concepts which are used all around Spring and a good understanding of these concepts can make our learning process smoother. The First one is Aspect Oriented Programming. This post is dedicated for understanding the concepts of Aspect Oriented Programming, primarily from the standpoint of Spring Framework. Asp...
Read More

Spring Beginners to Professionals – Introduction

Introduction Dear Readers, upon lot of requests, I have decided to write this new series of posts. This is the first look of a book which I am writing and I would like to share my knowledge and understanding of Spring Framework and its hacks.  This series will be available under the J2EE category under the heading "Spring Beginners to Professionals". As of the time of writing this book and series, the GA version of Spring was 4.2.5, for the new versions few things might vary but more or less concepts and usages will be similar. This is a series and it would make a lot of sense if read i...
Read More

Preserve indices while sorting array

Introduction This is a request from one of the readers. This is mostly useful in competitive programming where you want to sort an array by the values, but at the same time the requirement is to preserve the index of each element. If I have to explain using an example, then consider the array below. The array is zero indexed. The first two rows represent the input array and indices of each element in the array. The next two rows represent the sorted array, but the moment you sort it, the index for each element changes. Earlier A was at index 4 but in the sorted array it is at index ...
Read More

Solving 0/1 Knapsack problem using Dynamic Programming

Introduction A knapsack is a bag with straps, usually carried by soldiers to help them take their valuables or things which they might need during their journey. The 0/1 knapsack problem is a very famous interview problem. The problem statement is as follows: Given a set of items, each of which is associated with some weight and value. Find the subset of items which can be carried into the knapsack with weight limit W. It is required that the cumulative value of the items in the knapsack is maximum value possible. In simple words, it asks you to pick certain items from the set of items ...
Read More

Solving 0/1 Knapsack problem using Recursion

Introduction A knapsack is a bag with straps, usually carried by soldiers to help them take their valuables or things which they might need during their journey. The 0/1 knapsack problem is a very famous interview problem. The problem statement is as follows: Given a set of items, each of which is associated with some weight and value. Find the subset of items which can be carried in a knapsack of capacity W (where W is the weight). It is required that the cumulative value of the items in the knapsack is maximum value possible. In simple words, it asks you to pick certain items from the...
Read More

Find Interleaving Strings using Dynamic Programming

Introduction This problem is already discussed in the post here. This post attempts to solve the same using the dynamic programming approach. Here is a brief description of the problem. Given three strings A, B and C such that A is "ab", B is "ade" and C is "adabe" find if C is an interleaving of A and B or not. Interleaving means constructing the third string C using the characters of A and B such that the characters in A and B preserve their relative ordering in C. In the above example C is an interleaving of A and B. Approach to Find Interleaving Strings using Dynamic Programming How ...
Read More

Build Balanced Binary Search Tree from Array

Introduction This post describes the algorithm to build binary search tree from array of sorted elements. However, this technique can be used to build balanced binary search tree from array. A balanced binary tree is a binary tree which has minimum height. To know more about various aspects of a binary search tree, please visit my previous posts. What does balanced means? In this post as we are trying to build a BST, we will assume the input to be a sorted array. In case, we are just building a binary tree, we can take any array as an input. Let me explain the process with the help of a ...
Read More