Reputation: 57
I know how to go through whole array, but I only need number of duplicate occurrences. I'm at beginners level, so just basic use of loops and arrays.
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
for (int i = 0; i < array.length; i++) {
int count = 0;
for (int j = 0; j < array.length; j++) {
count++;
}
System.out.println(array[i] + "\toccurs\t" + count + "X");
}
Upvotes: 2
Views: 1320
Reputation: 1
For String I print all the duplicates and their counts. Please check above code and my logic.
package Interview_Strings;
import java.util.Arrays;
public class print_duplicates_and_their_counts
{
static void printDupCount(String str)
{
char[] charString=str.toCharArray();
Arrays.sort(charString);
int size=charString.length;
int j=1,i=0;
int count=0;
while(i<size && j<size)
{
if(charString[i]!=charString[j])
{
count=j-i;
System.out.println(charString[i]+" : "+count);
i=j;
j++;
if(j>=size)
{
System.out.println(charString[j-1]+" : "+count);
}
}
else
{
j++;
}
}
}
public static void main(String args[])
{
String str="bigbangtheory";
printDupCount(str);
}
}
output: a : 1 b : 2 e : 1 g : 2 h : 1 i : 1 n : 1 o : 1 r : 1
Upvotes: 0
Reputation: 1
using System;
public class Exercise34
{
public static void Main()
{
int[] a = { 3,4,5,6,7,8,3,4,5,6,7,8,9,9};
int n = a.Length-1;
int dupcounter = 0;
for (int i = 0; i < n; i++)
{
int counter = 0;
for (int j = i + 1; j <= n; j++)
{
if (a[i] == a[j])
{
counter++;
n--;
if (counter == 1)
{
dupcounter++;
Console.WriteLine(a[i]);
}
for (int k = j; k <= n; k++)
{
a[k] = a[k + 1];
}
}
}
}
Console.WriteLine(dupcounter);
}
}
Upvotes: 0
Reputation: 33466
You can do better if you use more than just loops and arrays, but a simple algorithm would be to use two nested for
loops, and put an if
statement inside that increments a counter when a duplicate is found.
int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
for (int i = 0; i < array.length - 1; i++) {
int count = 1;
for (int j = i + 1; j < array.length; j++) {
if (array[i] == array[j]) {
count++;
}
}
if (count > 1) {
System.out.println(array[i] + "\toccurs\t" + count + " times");
}
}
Upvotes: 2