Open In App

Amazon Interview Experience | Set 425

Improve
Improve
Like Article
Like
Save
Share
Report

Round 1: Technical Face 2 Face.

  1. Write a program to find the range of majority elements in array(non-descending)?
  2. Write program to print all the permutation of String? Example Input : AB, Output : {$, “A”, “B”, “AB”};
  3. Write program to transform a tree from give tree, such that each node will have the sum of child nodes plus itself.(Write recursive function)

To best of me i have given answer to all the three programs(little doubtful with 2nd one).

No Selected. 🙁

For first question my approach was:




public class MajorityRange {
  
    public static void main(String args[])
    {
        int number[] = { 1, 3, 3, 3, 3, 3, 4 };
        int size = number.length;
        int start = 0;
        int end = size - 1;
        int count = 1;
        for (int i = 1; i < size; i++) {
            if (number[i] != number[i - 1]) {
                if (count > size / 2) {
                    end = i - 1;
                }
                else {
                    start = i;
                }
            }
            else {
                count++;
            }
        }
        System.out.println("Start = " + start + "End = " + end);
    }
}


Explanation: Solved in O(n) time complexity. In order to improve the complexity we can use divide and conquer strategy(Modified version of Jump Search or interpolation Search)


Last Updated : 19 Nov, 2019
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads