**Objective:** Given two sorted linked lists, objective is to merge both the lists in sorted order.

**Input:** Two sorted linked list List a, List b.

Example:List a :->2->6->18Listb:->1->3->17->19Merged List: ->1->2->3->6->17->18->19

**Approach:**

**Objective:** Given two sorted linked lists, objective is to merge both the lists in sorted order.

**Input:** Two sorted linked list List a, List b.

Example:List a :->2->6->18Listb:->1->3->17->19Merged List: ->1->2->3->6->17->18->19

**Approach:**

Linked List- As the name suggests it’s a list which is linked.

- Linked List consist of Nodes

Nodes are nothing but objects of a class and each node has data and a link to the next node.

class Node { public int data; public Node next; public Node(int data) { this.data = data; this.next = null; } }

**Objective:** Rearrange Positive and Negative Numbers of an Array so that one side you have positive numbers and other side with negative Integers without changing their respective order.

Example: Input : 1 -2 3 -4 5 -6 7 -8 9 -10 ReArranged Output : -2 -4 -6 -8 -10 1 3 5 7 9

**Input:** An array with positive and negative numbers

**Output:** Modified array with positive numbers and negative numbers are on each side of the array.

**Approach:**

**Method 1. **One naive approach is to have another array of same size and navigate the input array and one scan place all the negative numbers to the new array and in second scan place all the positive numbers to new array. Here the Space complexity will be O(n). We have a better solution which can solve this in O(1) space.

**Method 2: Divide and Conquer**

Read moreRearrange Positive and Negative Numbers of Array On Each Side in O(nlogn)

**Objective:** Write an algorithm to find The Longest Sequence Of Prefix Shared By All The Words In A String. This interesting problem was asked in the Google interview for software engineer. This problem is bit tricky, it looks difficult but actually it is simple problem.

**Input:** A String

**Output:** The longest sequence of prefix common in all the words in a string

**Example:**

“Bedroom BedClock BedTable BedWall” => “Bed”

**Approach:**

Read moreFind The Longest Sequence Of Prefix Shared By All The Words In A String

**Objective:** This question was asked in Amazon interview for the Software development Engineer position, Write an algorithm to print all the elements of two dimensional array in spiral.

**Example :**

**Input:** Two dimensional array

**Output:** All array elements printed in spiral.

**Approach:**

Read morePrint All Elements of Two Dimensional Array in Spiral

**Objective:** Write an algorithm to find out whether in a given array there exists or not two numbers whose sum is exactly equals to a given number. This problem has been asked in Amazon and Microsoft interviews.

**Input:** An array arrA[], A number k

**Output:** True or false based upon we have found any two numbers in array arrA[] whose sum is equal to k

**Approach:**

**Method 1: Using Binary Search**

Read moreFind a pair of numbers from an array whose sum equals k

**Objective:** Write an algorithm to find out whether in a given string contains all the unique characters. This question has been asked in the Amazon and Microsoft interviews.

**Input:** A String

**Output:** True or false based upon whether string contains all the unique characters or not.

**Approach:**

**Method 1.**

**Objective: **Write an algorithm to sort an array in increasing or decreasing order using Quick Sort.

**Input:** An Array arrA[]

**Output:** A sorted array.

**Approach:**

- Choose any element from the array and call it as pivot element, Example here we have selected middle element as pivot
- Place all the elements smaller than pivot in the left side of pivot.
- Place all the elements greater than pivot in the right side of pivot.
- Sort left side and right side recursively.

**Example:**

**Objective**: You have been asked to Write an algorithm to find Whether Given the Sequence of parentheses are well formed. This question was asked in the Amazon Interview.

**Input**: A String contains a sequence of parentheses

**Output**: true or false on whether parentheses are well formed or not

**Approach**:

- Idea is to have two counters, one for open parentheses ‘{‘ and one for close ‘}’
- Read one character at a time and increment one of the counters
- If any given point of time count of close parentheses is greater than the open one, return false
- If at the end both counters are equal, return true

**Example: { { } { } } – Well formed**

**{ { } { = Not well formed**

**Objective :** Write an algorithm to find an Element in 2 dimensional array where rows and columns are sorted respectively.

**Input:** A two dimensional sorted array, arrA[][].

**Output : **True or false based on whether element exists and its location

**Approach:**

**Objective : **Write an algorithm to find Whether Given String is palindrome or Not.

**Input: ** A String,

**Output:** true or false on whether string is palindrome or not

**Approach:**

- Use recursive approach
- Compare first and last characters if they are not same- return false
- If they are same make, remove the first and last characters and make a recursive call.

**Example:**

Jain niaJ => compare ‘J’ with ‘J’ =>returns true ain nia => compare ‘a’ with ‘a’ =>returns true in ni => compare ‘i’ with ‘i’ =>returns true n n => compare ‘n’ with ‘n’ =>returns true string length <2 => returns true

**Objective :** In this article we will discuss an algorithm to Find a peak element in a Given Array. We will see the recursion techniques to solve this problem.

**Peak Element:** peak element is the element which is greater than or equal to both of its neighbors.

**Input:** Array, arrA[] .

**Output:** A peak element and its index

**Approach:**

A simple approach is to do a linear scan to a array and using few variables we can find a peak element. But the Time Complexity will be O(n) but real question is, Can we do better?

The Answer is yes, by using **Binary Search techniques.**

**Objective :** Write an algorithm to find two Missing Numbers in a Sequence of Consecutive Numbers

**Input:** Array, arrA[] with two missing numbers and Range

**Output :** Two missing numbers

**Approach:**

- Approach is very simple, Add all the given numbers say S
- Calculate sum of N numbers by formula n(n+1)/2 , say N
- Find sum of two missing numbers a+b = N-S

Read moreFind two Missing Numbers in a Sequence of Consecutive Numbers

**Objective :** You have been asked to Write an algorithm Find a Missing Number From a Sequence of Consecutive Numbers

**Input:** Array, arrA[] with a missing number and Range

**Output : **missing number

**Approach:**

- Approach is very simple, Add all the given numbers say S
- Calculate sum of N numbers by formula n(n+1)/2 , say N
- Find missing number m = N-S

Read moreFind a Missing Number From a Sequence of Consecutive Numbers

**Objective :** To implement a Hash Table

**Input:** A set of pairs of keys and values

**Approach:**

**Create a Hash Table****Hashtable<Integer, String> ht = new Hashtable<Integer, String>();**

**Insert values in hash table using put(key,value)****ht.put(key, value);**