Remove duplicates from the sorted array

**Problem **  Remove duplicates from the sorted array Example [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5] -> [1, 2, 3, 4, 5] Method 1- using 3 pointers //using 3 pointers fixDuplicatesInSortedArray(Integer\[\] a): start = 0 end = 0 destination = 0 while(start < a.length): while(end < a.length && a\[end\] == a\[start\]): end++ end-- //copy the distinct element a\[destination\] = a\[start\] destination++ start = end + 1 end = start //null out the rest while destination < a. [Read More]

print all word combinations from phone number

Print all words combinations from phone number. ex: 111-1111 -> AAA-AAAA, AAA-AAAB … CCC-CCCC char charkeyMap(int digit, int position) ex: charkeyMap(1, 0) = ‘A’ charkeyMap(1, 1) = ‘B’ charkeyMap(1, 2) = ‘C’ ` void printCombinations(int[] in): char[] out = new char[in.length] //first combination ex: 111-1111 -> AAA-AAAA for(int i = in.length -1; i >= 0; i–): out[i] = charkeyMap(in[i], 0)  int i while (true): out.print() i = in.length - 1; [Read More]

String matching

The naive brute force approach: It is very simple to code but there are little things to look for (as least I have to) with respect to optimization. The outer loop runs for text, the inner loop runs for pattern with one more condition - **i+ len(pattern) <= len(text)**. int bruteForce (text, pattern) for (i =0; i < len(text); i++): for (j = 0; j < len(pattern) && **i+ len(pattern) <= len(text)**; j++): //instead of i+j < len(text) if text[i+j] ! [Read More]

Sorting binary array - Array containing only 0 and 1 in one pass OR two color sort

in your Pseudocode, the if condition should be if …

RM - May 3, 2014

in your Pseudocode, the if condition should be if (low < high).

Thanks Rish. I have made the change a[low] > a[high] rather than low < low. :). Thanks for correcting me.

Sorting binary array - Array containing only 0 and 1 in one pass OR two color sort

Problem Sort a binary array - array containing 0s and 1s in 1 pass. This is also called two color sort. Example Input - Binary unsorted array A = {0,1,1,0,0,1}; Output - binary sorted array B = {0,0,0,1,1,1} Solution This is similar to quicksort partition algorithm. Though normal sorting takes O(n log n) time, but we have to just partition 0 from 1, and hence it should only take time of partitioning - O(n). [Read More]

Write a C Program to reverse a stack "in place" using recursion ?

**You can only use the following ADT functions on Stack: IsEmpty IsFull Push Pop Top** #include #include using namespace std; stack S; void func(int n){ if(S.empty()) S.push(n); else{ int t= S.top(); S.pop(); func(n); S.push(t); } } void Rec(){ if(!S.empty()){ int t = S.top(); S.pop(); Rec(); func(t); } } void printStack(){ if(!S.empty()){ int t= S.top(); S.pop(); cout«”,"; printStack(); S.push(t); } else{ cout«"Stack empty now”; } } int main(int argc, char* argv[]) [Read More]

How do you know where the memory leaks when you have multiple files?

One Way to detect the memory leaks is to check that while using Inheritance and Virtual Functions some where we have initialized baseclass pointer with the derived class object but when calling destructor the destructor that u have used in the baseclass is not declared as Virtual. eg: #include using namespace std; class Base1 { public: ~Base1() { cout « “~Base1()\n”; } }; class Derived1 : public Base1 { public: [Read More]