It is most likely that you read my previous post on the Misconceptions . If you missed that, then I would advice you to please read that, it is a small post.
So, in this post we will learn about few things:
What exactly is Factory Method Pattern ?
What purpose does it solve?
Where in JDK is Factory Method Design Pattern used?
Key points of Factory Method Design Pattern.
What exactly is Factory Method Pattern
Continuing our story from the previous post, where Jay is now happy with his shops and the simple factory setup. As a business grows people see it and try to earn profit f...

Read More
## Misconception about Factory Method Design pattern

Introduction
This post is intended mostly for beginners who want to understand the Factory Method Design Pattern. Yes! the name is Factory Method Design Pattern and not Factory Pattern.
It is very important for me to start with the misconception about Factory Method Design pattern, this is a starter post and you might not learn anything about the Factory Method design pattern here. But yes! I will tell you what is not a factory method design pattern.
The story
Once upon a time there lived a Carpenter Jay in a village. He had this nice way of making beautiful wooden furniture and he used ...

Read More
## Identify the Poisoned Bottle

Problem Statement
The king has hosted a dinner which is about to start in one hour and guests have arrived. The king plans to offer his exquisite wine collection to the guests. There are 16 different bottles of wines (labeled 1 through 15) available and they are to be served to the guests.
The minister comes to know from a trusted source that one of the bottles is poisoned. Also, the poison takes one hour to come into affect and kill someone.
It is a tough time for the king and the minister and it becomes utmost priority to identify the poisoned bottle. The only way to test the bottles ...

Read More
## Identify Safe Height by Dropping Eggs

Problem Statement
If you have 2 eggs and you want to figure out what's the highest floor from which you can drop the egg without breaking it, how would you do it? What's the optimal solution to Identify Safe Height by Dropping Eggs?
Note: For simplicity we can assume that the building is 100 floors high.
Solution
As any other aptitude problems let us list down what we know:
The building is 100 floors high
We have two eggs
We can drop the eggs as many times as possible (if it is not broken in the previous drop)
We understand that the question demands an optimal solution, but ...

Read More
## Identify Apple and Oranges Labels

Puzzle Statement
There are three boxes, one contains only apples, one contains only oranges, and one contains both apples and oranges. The boxes have been incorrectly labelled such that no label identifies the actual contents of the box it labels. Opening just one box and without looking in the box, you take out one fruit.
By looking at the fruit, how can you immediately label all of the boxes correctly?
Solution
It might look tricky but if we can think for a while and decide upon which box to open the solution really becomes simple. Let us first note down the facts we know for sure:...

Read More
## Graph Theory Applications – The Instant Insanity Puzzle

[nextpage title="Applications of Graph Theory"]
Graph Theory is used in modelling and solving a lot of real world problems, games and puzzles. Here we discuss a very famous puzzle " The Instant Insanity " problem.
The goal of this post is to demonstrate that such complicated problem statements can be so easily modeled and solved using Graph Theory. Also I would like to build some more interest into Graph Theory. If you want to feel more comfortable with the basics of Graph Theory, here is a list of primers you might like to read once.
Problem Definition - The Instant Insanity Puzzle
The...

Read More
## Priority Queues

Introduction
You have N distinct jobs to process, and you are given the responsibility to schedule them on the only available job processor.
New jobs keeps on getting added into the set of available jobs. Not all the jobs are to be executed as they come.
There might be few which needs to be executed immediately and few can be postponed for some time.
You have an efficiently algorithm to decide the priority of an incoming job. The task at hand is as follows:
To schedule available jobs based on the priority assigned to them.
Add new jobs to the set after assigning a priority to it.
...

Read More