Interview Question
Java DevelopersTeam: 4
Country: United States
Interview Type: Written Test
public static void pairPencils(int[] arr) {
Arrays.parallelSort(arr);
int i = 0;
int j = arr.length / 2;
int count = 0;
while (i < arr.length && j < arr.length) {
if (arr[i] == Integer.MAX_VALUE) {
i++;
continue;
}
if (arr[j] == Integer.MAX_VALUE) {
j++;
continue;
}
if (2 * arr[i] <= arr[j]) {
arr[i] = Integer.MAX_VALUE;
arr[j] = Integer.MAX_VALUE;
count++;
i++;
}
j++;
}
System.out.println(count + " " + (arr.length - 2 * count));
}
public static void pairPencils(int []arr) {
Arrays.parallelSort(arr);
int i = 0;
int j = arr.length / 2;
int count = 0;
while (i < arr.length && j < arr.length) {
if (arr[i] == Integer.MAX_VALUE) {
i++;
continue;
}
if (arr[j] == Integer.MAX_VALUE) {
j++;
continue;
}
if (2 * arr[i] <= arr[j]) {
arr[i] = Integer.MAX_VALUE;
arr[j] = Integer.MAX_VALUE;
count++;
i++;
}
j++;
}
System.out.println(count + " " + (arr.length - 2 * count));
}
public static void pairPencils(int []arr) {
Arrays.parallelSort(arr);
int i = 0;
int j = arr.length / 2;
int count = 0;
while (i < arr.length && j < arr.length) {
if (arr[i] == Integer.MAX_VALUE) {
i++;
continue;
}
if (arr[j] == Integer.MAX_VALUE) {
j++;
continue;
}
if (2 * arr[i] <= arr[j]) {
arr[i] = Integer.MAX_VALUE;
arr[j] = Integer.MAX_VALUE;
count++;
i++;
}
j++;
}
System.out.println(count + " " + (arr.length - 2 * count));
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t=0;
cin>>t;
while (t--)
{
int n;
cin>>n;
vector<int>a(n);
for(int i=0;i<n;i++)
cin>>a[i];
sort(a.begin(), a.end());
int cnt=0, i=n-1, j=n-1;
while(i>=0)
{
if(2*a[i]>a[j])
i--;
else
{
cnt++;
i--;
j--;
}
}
cout<<cnt<<" "<<n-2*cnt<<endl;
}
return 0;
}
Step 1) Sort the array A of sizes
- s100banerjee June 30, 2019Step 2) Take 2 variables p and q, p =0 and q = 1
Loop:
for A[p] find the smallest A[q] by iteration, Then each of A[p] and A[q], A[q+1],..... ......... make one pair each.
temp = p+1
Loop:
if(A[p] == A[temp])
temp++;
else{
A[p] = A[temp];
break;
}
End Loop:
Loop:
Find next A[q] for the new p.by iteration.
if(q==A.length) return;
End Loop:
End Loop