Write a static method called removeMatches that removes extra copies of a value that are adjacent to it in an ArrayList of Integer objects. For example, if a variable called list contains the following: [1, 3, 3, 3, 3, 15, 2, 2, 1, 19, 3, 42, 42, 42, 7, 42, 1] and we make the following call: removeMatches (list); Then list should store the following values after the call: [1, 3, 15, 2, 1, 19, 3, 42, 7, 42, 1]
![Next
Description
Write a static method called removeMatches that removes
extra copies of a value that are adjacent to it in an ArrayList
of Integer objects. For example, if a variable called list
contains the following:
[1, 3, 3, 3, 3, 15, 2, 2, 1, 19, 3, 42, 42, 42, 7, 42, 1]
and we make the following call:
remove Matches (list);
Then list should store the following values after the call:
[1, 3, 15, 2, 1, 19, 3, 42, 7, 42, 1]
Notice that the four bccurrences of 3 that appear next to each
other have been replaced with a single occurrence of 3, the
two occurrences of 2 that appear next to each other have been
replaced with a single 2, and the three occurrences of 42 that
appear next to each other have been replaced with a single 42.
Notice, however, that the list still contains three occurrences of
1, two occurrences of 3, and two occurrences of 42. That is
because those duplicate values do not appear right next to
each other in the list.
You may not construct any extra data structures to solve this
problem. You must solve it by manipulating the ArrayList
you are passed as a parameter.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fdb5f8f02-6709-43da-9aaa-e09884bfc964%2F1521886f-63d5-4ca0-94d5-1197abc27a45%2Fw4owyoa_processed.jpeg&w=3840&q=75)
![+
RemoveMatches.java
1 import java.util.*;
2
3 public class RemoveMatches {
4
5
6
public static void main(String[] args) {
Integer [] test1 = {1, 3, 3, 3, 3, 15, 2, 2, 1, 19, 3, 42, 42, 42, 7, 42, 1};
ArrayList<Integer> list = new ArrayList<Integer> (Arrays.asList (test1));
System.out.println("Before:
" + list);
removeMatches (list);
System.out.println("After : " + list);](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fdb5f8f02-6709-43da-9aaa-e09884bfc964%2F1521886f-63d5-4ca0-94d5-1197abc27a45%2Fen7hfgj_processed.jpeg&w=3840&q=75)

Program Code:
// Java Program to Remove Duplicate Elements
// From the Array using extra space
public class Main {
public static int removeMatches(int a[], int n)
{
if (n == 0 || n == 1) {
return n;
}
// creating another array for only storing
// the unique elements
int[] temp = new int[n];
int j = 0;
for (int i = 0; i < n - 1; i++) {
if (a[i] != a[i + 1]) {
temp[j++] = a[i];
}
}
temp[j++] = a[n - 1];
// Changing the original array
for (int i = 0; i < j; i++) {
a[i] = temp[i];
}
return j;
}
public static void main(String[] args)
{
int a[] = { 1, 3, 3, 3, 3, 15, 2, 2, 1, 19, 3, 42, 42, 42, 7, 42, 1 };
int n = a.length;
n = removeMatches(a, n);
// Printing The array elements
for (int i = 0; i < n; i++)
System.out.print(a[i] + " ");
}
}
Output:
1 3 15 2 1 19 3 42 7 42 1
Trending now
This is a popular solution!
Step by step
Solved in 2 steps with 1 images









