Amazon Interview Question
Quality Assurance EngineersCountry: India
Interview Type: In-Person
int[] array = {1, 3, 10, 3, 1, 10, 9, 10, 12, 1};
if (array == null || array.length == 0) {
System.out.println("Not Possible");
System.exit(0);
}
Map<Integer, Integer> mp = new HashMap<Integer, Integer>();
for (int i = 0; i < array.length; i++) {
if (!mp.containsKey(array[i])) {
mp.put(array[i], 1);
} else {
int c = mp.get(array[i]);
c += 1;
mp.put(array[i], c);
}
}
for (Iterator<Integer> iterator = mp.keySet().iterator(); iterator.hasNext();) {
Integer type = iterator.next();
System.out.println(type + "\t" + mp.get(type));
}
int[] array = {1, 3, 10, 3, 1, 10, 9, 10, 12, 1};
if (array == null || array.length == 0) {
System.out.println("Not Possible");
System.exit(0);
}
Map<Integer, Integer> mp = new HashMap<Integer, Integer>();
for (int i = 0; i < array.length; i++) {
if (!mp.containsKey(array[i])) {
mp.put(array[i], 1);
} else {
int c = mp.get(array[i]);
c += 1;
mp.put(array[i], c);
}
}
for (Iterator<Integer> iterator = mp.keySet().iterator(); iterator.hasNext();) {
Integer type = iterator.next();
System.out.println(type + "\t" + mp.get(type));
}
private void PrintElementOccurence(int[] arrayInts)
{
var ElementArray = new int[256];
foreach (var arrayInt in arrayInts)
{
ElementArray[(int)Convert.ToChar(arrayInt.ToString(CultureInfo.InvariantCulture))]++;
}
for (int i = 0; i < ElementArray.Length; i++)
{
if (ElementArray[i] > 0)
{
Console.WriteLine("Occurence of {0} is {1}", Encoding.ASCII.GetChars(new[] { Convert.ToByte(i) })[0], ElementArray[i]);
}
}
}
package core_java_Programs;
import java.util.HashMap;
import java.util.Set;
public class DuplicateNumbers {
public static void main(String[] args) {
int[]a={1,2,1,5,9,5,8,3,5,1,6,1,8,9};
HashMap<Integer,Integer> map = new HashMap<>();
for (int Num : a) {
if(map.containsKey(Num)){
map.put(Num,(map.get(Num)+1));
}
else{
map.put(Num,1);
}
}
Set<Integer> set = map.keySet();
for (Integer integer : set) {
System.out.println("The Number "+integer+" occurs "+map.get(integer));
}
System.out.println(map.toString());
}
}
package core_java_Programs;
import java.util.HashMap;
import java.util.Set;
public class DuplicateNumbers {
public static void main(String[] args) {
int[]a={1,2,1,5,9,5,8,3,5,1,6,1,8,9};
HashMap<Integer,Integer> map = new HashMap<>();
for (int Num : a) {
if(map.containsKey(Num)){
map.put(Num,(map.get(Num)+1));
}
else{
map.put(Num,1);
}
}
Set<Integer> set = map.keySet();
for (Integer integer : set) {
System.out.println("The Number "+integer+" occurs "+map.get(integer));
}
System.out.println(map.toString());
}
}
import java.util.HashMap;
import java.util.Map;
public class CountOccuranceInArray {
public static void main(String[] args) {
int arr[] = {2,4,5,7,2,7,8,3,1,5,3,5,6,9,2,1};
Map<Integer,Integer> occuranceMap = new HashMap<>();
for(int i:arr){
if(!occuranceMap.containsKey(i)){
occuranceMap.put(i,1);
}
else{
int c = occuranceMap.get(i);
occuranceMap.put(i, ++c);
}
}
for(Map.Entry<Integer, Integer> entry : occuranceMap.entrySet()){
System.out.println("Occurance of "+entry.getKey()+" is "+entry.getValue());
}
}
}
C# solution by using Dictionary
private static Dictionary<int, int> CountNumberOfOccurrences(int[] input)
{
Dictionary<int, int> numberOfOccurrences = new Dictionary<int, int>();
foreach(int element in input)
{
if(numberOfOccurrences.ContainsKey(element))
numberOfOccurrences[element] += 1;
else
numberOfOccurrences.Add(element, 1);
}
return numberOfOccurrences;
}
static void Main(string[] args)
{
// Count the number of occurrence of an element in an array
char[] charArray = { 'a','a','b', 'c','a','B','b','D'};
var list = new List<KeyValuePair<char, int>>();
List<char> listItem = null;
int counter = 0;
foreach (var element in charArray)
{
listItem = (from kvp in list select kvp.Key).ToList();
if (!listItem.Contains(element))
{
list.Add(new KeyValuePair<char, int>(element, 1));
}
else {
for(int i=0; i< list.Count; i++)
{
if(list[i].Key == element)
{
counter = list[i].Value + 1;
list[i] = new KeyValuePair<char, int>(element, counter);
}
}
}
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine("Array Element:{0}, Number of Occurrences:{1}", list[i].Key, list[i].Value);
Console.ReadLine();
}
static void CountNumberOccurenceElementsInArray(int [] arr)
{
Dictionary<int, int> dic = new Dictionary<int, int>();
foreach (var a in arr)
{
if (!dic.Keys.Contains(a))
{
dic.Add(a, 1);
}
else
{
dic[a]++;
}
}
foreach (var k in dic.Keys)
{
Console.WriteLine("Number: {0} occurred: {1}", k, dic[k]);
}
Console.WriteLine();
}
static void Main(string[] args)
{
int [] arr = new int[] { 1, 2, 3, 2, 3, 4, 5, 2, 2, 4, 5, 1, 2 };
CountNumberOccurenceElementsInArray(arr);
char[] charArray = { 'a', 'a', 'b', 'c', 'a', 'B', 'b', 'D' };
CountNumberOccurenceElementsInArray(charArray);
}
static void CountNumberOccurenceElementsInArray<T>(T [] arr)
{
Dictionary<T,int> dic = new Dictionary<T, int>();
foreach (var a in arr)
{
if (!dic.ContainsKey(a))
{
dic.Add(a, 1);
}
else
{
dic[a]++;
}
}
foreach (var k in dic.Keys)
{
Console.WriteLine("Number: {0} occurred: {1}", k, dic[k]);
}
Console.WriteLine();
}
public class Problem3 {
public HashMap<Integer,Integer> sortCount(int array[]){
HashMap<Integer,Integer>numInfo=new HashMap<Integer,Integer>();
for(int i:array){
if(numInfo.containsKey(i)){
int count=numInfo.get(i);
count++;
numInfo.remove(i);
numInfo.put(i,count);
}
else if(numInfo.isEmpty() || numInfo.containsKey(i)==false){
numInfo.put(i, 1);
}
}
return numInfo;
}
public static void main(String ... ar){
Problem3 problem3=new Problem3();
int []array={1,2,4,3,1,2,4,5,3,2,1,0,3,4,5};
HashMap<Integer, Integer>nums=problem3.sortCount(array);
for(Map.Entry<Integer, Integer>item:nums.entrySet()){
System.out.println(item.getKey()+" : "+item.getValue());
}
}
}
package com.bc.code;
import java.util.HashMap;
import java.util.Scanner;
public class CountNumberOccr {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int a[] = new int[n];
for(int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
HashMap<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < n; i++) {
Integer k = map.get(a[i]);
if(k == null) {
map.put(a[i], 1);
} else {
map.put(a[i], k.intValue() + 1);
}
}
for(Integer i : map.keySet()) {
System.out.println(i.intValue() + " " + map.get(i));
}
in.close();
}
}
package com.bc.code;
import java.util.HashMap;
import java.util.Scanner;
public class CountNumberOccr {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int a[] = new int[n];
for(int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
HashMap<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < n; i++) {
Integer k = map.get(a[i]);
if(k == null) {
map.put(a[i], 1);
} else {
map.put(a[i], k.intValue() + 1);
}
}
for(Integer i : map.keySet()) {
System.out.println(i.intValue() + " " + map.get(i));
}
in.close();
}
}
Use a Hashmap and traverse the array storing Key = element, Value = Count of occurrences of element. O(n) . Pick any desired element - Key and retrieve number of occurrences. O(1).
- guilhebl May 06, 2016