Picking Numbers-algorithm
Picking Numbers
Given an array of integers, find and print the maximum number of integers
you can select from the array such that the absolute difference between any
two of the chosen integers is .
Input Format
The first line contains a single integer, , denoting the size of the array.
The second line contains space-separated integers describing the respective
values of .
Constraints
- The answer will be .
Output Format
A single integer denoting the maximum number of integers you can choose
from the array such that the absolute difference between any two of the chosen integers
is .
Sample Input 0
6
4 6 5 3 3 1
Sample Output 0
3
Explanation 0
We choose the following multiset of integers from the array: . Each pair in the multiset
has an absolute difference (i.e., and ), so we print the number of chosen integers, , as
our answer.
Sample Input 1
6
1 2 2 3 1 2
Sample Output 1
5
Explanation 1
We choose the following multiset of integers from the array: . Each pair in the multiset
has an absolute difference (i.e., , , and ), so we print the number of chosen integers, ,
as our answer.
program code:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] a = new int[n];
for(int a_i=0; a_i < n; a_i++){
a[a_i] = in.nextInt();
}
int x = getMaxSet(a, n);
System.out.println(x);
}
static int getMaxSet(int arr[], int n){
Arrays.sort(arr);
int cnt =0;
int max=0;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(arr[j]-arr[i]<=1){
cnt++;
}
}
if(cnt>max)
max=cnt;
cnt=0;
}
return max;
}
}
Given an array of integers, find and print the maximum number of integers
you can select from the array such that the absolute difference between any
two of the chosen integers is .
Input Format
The first line contains a single integer, , denoting the size of the array.
The second line contains space-separated integers describing the respective
The second line contains space-separated integers describing the respective
values of .
Constraints
- The answer will be .
Output Format
A single integer denoting the maximum number of integers you can choose
from the array such that the absolute difference between any two of the chosen integers
is .
is .
Sample Input 0
6
4 6 5 3 3 1
Sample Output 0
3
Explanation 0
We choose the following multiset of integers from the array: . Each pair in the multiset
has an absolute difference (i.e., and ), so we print the number of chosen integers, , as
our answer.
has an absolute difference (i.e., and ), so we print the number of chosen integers, , as
our answer.
Sample Input 1
6
1 2 2 3 1 2
Sample Output 1
5
Explanation 1
We choose the following multiset of integers from the array: . Each pair in the multiset
has an absolute difference (i.e., , , and ), so we print the number of chosen integers, ,
as our answer.
program code:
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] a = new int[n];
for(int a_i=0; a_i < n; a_i++){
a[a_i] = in.nextInt();
}
int x = getMaxSet(a, n);
System.out.println(x);
}
static int getMaxSet(int arr[], int n){
Arrays.sort(arr);
int cnt =0;
int max=0;
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(arr[j]-arr[i]<=1){
cnt++;
}
}
if(cnt>max)
max=cnt;
cnt=0;
}
return max;
}
}
0 comments:
Post a Comment