Zoho Interview Question
SDE1sCountry: United States
Interview Type: Written Test
and
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5, 6, 7};
int[] newArray = new int[myArray.length];
int length = myArray.length-1;
int evenCount = 0;
int oddCount = 1;
for(int i = 0; i < newArray.length; i++) {
if(i % 2 == 0) {
newArray[i] = myArray[length - evenCount];
evenCount++;
}
else {
newArray[i] = myArray[i - oddCount];
oddCount++;
}
}
}
and
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5, 6, 7};
int[] newArray = new int[myArray.length];
int length = myArray.length-1;
int evenCount = 0;
int oddCount = 1;
for(int i = 0; i < newArray.length; i++) {
if(i % 2 == 0) {
newArray[i] = myArray[length - evenCount];
evenCount++;
}
else {
newArray[i] = myArray[i - oddCount];
oddCount++;
}
}
}
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5, 6, 7};
int[] newArray = new int[myArray.length];
int length = myArray.length-1;
int evenCount = 0;
int oddCount = 1;
for(int i = 0; i < newArray.length; i++) {
if(i % 2 == 0) {
newArray[i] = myArray[length - evenCount];
evenCount++;
}
else {
newArray[i] = myArray[i - oddCount];
oddCount++;
}
}
}
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5, 6, 7};
int[] newArray = new int[myArray.length];
int length = myArray.length-1;
int evenCount = 0;
int oddCount = 1;
for(int i = 0; i < newArray.length; i++) {
if(i % 2 == 0) {
newArray[i] = myArray[length - evenCount];
evenCount++;
}
else {
newArray[i] = myArray[i - oddCount];
oddCount++;
}
}
}
public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5, 6, 7};
int[] newArray = new int[myArray.length];
int length = myArray.length-1;
int evenCount = 0;
int oddCount = 1;
for(int i = 0; i < newArray.length; i++) {
if(i % 2 == 0) {
newArray[i] = myArray[length - evenCount];
evenCount++;
}
else {
newArray[i] = myArray[i - oddCount];
oddCount++;
}
}
}
var a = [1,2,3,4,5,6,7].sort(function(a,b){return a < b});
function getNextMaxMin(acc, arr){
if (arr.length === 1){return acc.push(arr.shift())}
if (arr.length === 0){return}
acc.push(arr.shift());
acc.push(arr.pop());
return getNext2(acc, arr);
}
var output = [];
getNextMaxMin(output, a);
console.log(output);
var a = [1,2,3,4,5,6,7].sort(function(a,b){return a < b});
function getNextMaxMin(acc, arr){
if (arr.length === 1){return acc.push(arr.shift())}
if (arr.length === 0){return}
acc.push(arr.shift());
acc.push(arr.pop());
return getNext2(acc, arr);
}
var output = [];
getNextMaxMin(output, a);
console.log(output);
var a = [1,2,3,4,5,6,7].sort(function(a,b){return a < b});
function getNextMaxMin(acc, arr){
if (arr.length === 1){return acc.push(arr.shift())}
if (arr.length === 0){return}
acc.push(arr.shift());
acc.push(arr.pop());
return getNext2(acc, arr);
}
var output = [];
getNextMaxMin(output, a);
console.log(output);
Oops.. clicked too many times, and forgot to rename the function. Fixed version below.
var a = [1,2,3,4,5,6,7].sort(function(a,b){return a < b});
function getNextMaxMin(acc, arr){
if (arr.length === 1){return acc.push(arr.shift())}
if (arr.length === 0){return}
acc.push(arr.shift());
acc.push(arr.pop());
return getNextMaxMin(acc, arr);
}
var output = [];
getNextMaxMin(output, a);
console.log(output);
public class AlternativeSorting {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList(Arrays.asList(1,2,3,7,5,6,4,8));
Collections.sort(list,Collections.reverseOrder());
int i=1;
while(i<list.size()){
int val = list.remove(list.size()-1);
list.add(i, val);
i=i+2;
}
System.out.println(list);
}
}
public class AlternativeSorting {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList(Arrays.asList(1,2,3,7,5,6,4,8));
Collections.sort(list,Collections.reverseOrder());
int i=1;
while(i<list.size()){
int val = list.remove(list.size()-1);
list.add(i, val);
i=i+2;
}
System.out.println(list);
}
}
import java.util.*;
public class AltSort {
public static void main(String[] args){
int intArr[] = {1,2,3,4,5,6,7};
int lent = intArr.length;
int mp = lent/2;
System.out.println("value of mp" + mp);
int i=lent-1;
System.out.println("value of i" + i);
int j=-1;
while (i>=mp)
{
System.out.println(intArr[i]);
j++;
if (j<mp)
{
System.out.println(intArr[j]);
};
i--;
};
}
}
import java.util.*;
public class AltSort {
public static void main(String[] args){
int intArr[] = {1,2,3,4,5,6,7};
int lent = intArr.length;
int mp = lent/2;
System.out.println("value of mp" + mp);
int i=lent-1;
System.out.println("value of i" + i);
int j=-1;
while (i>=mp)
{
System.out.println(intArr[i]);
j++;
if (j<mp)
{
System.out.println(intArr[j]);
};
i--;
};
}
}
Using C:
It sorts the user provided array first and then just alternately add the elements in the array.
#include <stdio.h>
void sort(int arr[],int left,int right)
{
int i= left, j= right;
int pivot = arr[((left+right)/2)];
int tmp=0;
/* partition */
while(i<=j)
{
while(arr[i]<pivot)
i++;
while(arr[j]>pivot)
j--;
if(i<=j)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if(left<j)
sort(arr,left,j);
if(i<right)
sort(arr,i,right);
}
int main()
{
int i;
int arr[7] = {1,2,3,4,5,6,7};int max=0,min=0;
int result[7];
int len = (sizeof(arr)/sizeof(arr[0]));
//printf("%d\n",arr[0]);
sort(arr,0,len-1);
//printf("%d\n",arr[0]);
for(i=0;i<len;i++)
{
if(i%2==0)
{
result[i] = arr[(len-1-max)];
max++;
}
else
{
result[i] = arr[min];
min++;
}
printf("%d\n",result[i]);
}
return 0;
}
from collections import deque
def MaxMin(alist):
d = deque(sorted(alist))
newList = []
while len(d) > 0:
newList.append(d.pop())
newList.append(d.popleft())
return newList
list1 = [100,21,44,20,24,1]
list1_sort = MaxMin(list1)
print "Original list ", list1
print "SortedList " , list1_sort
list2 = [100,21,44,20,24,1,5,6,23,52,99,34]
list2_sort = MaxMin(list2)
print "Original list ", list2
print "SortedList " , list2_sort
from collections import deque
def MaxMin(alist):
d = deque(sorted(alist))
newList = []
while len(d) > 0:
newList.append(d.pop())
newList.append(d.popleft())
return newList
list1 = [100,21,44,20,24,1]
list1_sort = MaxMin(list1)
print "Original list ", list1
print "SortedList " , list1_sort
list2 = [100,21,44,20,24,1,5,6,23,52,99,34]
list2_sort = MaxMin(list2)
print "Original list ", list2
print "SortedList " , list2_sort
from collections import deque
def MaxMin(alist):
d = deque(sorted(alist))
newList = []
while len(d) > 0:
newList.append(d.pop())
newList.append(d.popleft())
return newList
list1 = [100,21,44,20,24,1]
list1_sort = MaxMin(list1)
print "Original list ", list1
print "SortedList " , list1_sort
list2 = [100,21,44,20,24,1,5,6,23,52,99,34]
list2_sort = MaxMin(list2)
print "Original list ", list2
print "SortedList " , list2_sort
public int[] sort(int[] nums){
Arrays.sort(nums);
int[] result = new int[nums.length];
int start = 0, end = nums.length - 1;
int index = 0;
while( index < nums.length ){
result[index] = nums[end];
end--;
index++;
if( start < end) result[index] = nums[start];
index++;
start++;
}
return result;
}
public int[] sort(int[] nums){
Arrays.sort(nums);
int[] result = new int[nums.length];
int start = 0, end = nums.length - 1;
int index = 0;
while( index < nums.length ){
result[index] = nums[end];
end--;
index++;
if( start < end) result[index] = nums[start];
index++;
start++;
}
return result;
}
public class FirstMaxFirstMin {
public static void main(String[] args) {
int[] inputArray1 = {1, 2, 3, 4, 5, 6, 7};
populateMaxMinCombination(inputArray1);
int[] inputArray2 = {1, 3, 2, 7, 6, 8, 5, 9, 3};
System.out.println();
populateMaxMinCombination(inputArray2);
}
private static void populateMaxMinCombination(int[] inputArray) {
for (int row = 0; row < inputArray.length; row += 2) {
int min = inputArray[row];
int max = inputArray[row];
int minIndex = row;
int maxIndex = row;
for (int index = row; index < inputArray.length; index++) {
if (min > inputArray[index]) {
min = inputArray[index];
minIndex = index;
} else if (max < inputArray[index]) {
max = inputArray[index];
maxIndex = index;
}
}
if (maxIndex != minIndex) {
if (row == minIndex) {
inputArray[maxIndex] = inputArray[row + 1];
inputArray[row + 1] = min;
inputArray[row] = max;
} else {
inputArray[maxIndex] = inputArray[row];
inputArray[row] = max;
inputArray[minIndex] = inputArray[row + 1];
inputArray[row + 1] = min;
}
}
}
print(inputArray);
}
private static void print(int[] inputArray) {
for (int index = 0; index < inputArray.length; index++) {
System.out.print(inputArray[index] + " ");
}
}
}
#include<iostream>
using namespace std;
int a1[10],b1[10];
int sort(int a12[],int n){
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(a12[i]>a12[j]){
int temp=a12[i];
a12[i]=a12[j];
a12[j]=temp;
}
}
}
}
int main(){
int n;
cout<<"n";
cin>>n;
for(int i=0;i<n;i++){
cin>>a1[i];
}
sort(a1,n);
int i=0,j=n-1,k=0;
while(i<n){
if(i%2==0){
b1[i]=a1[j];
j--;
}
else{
b1[i]=a1[k];
k++;
}
i++;
}
for(int i=0;i<n;i++){
cout<<b1[i];
}
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int num;
cin>>num;
vector<int> a;
for(int i=0;i<num;i++){
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
int maxy,miny,dis_2,dis_1;
for(int i=0;i<num-1;i=i+2){
maxy = *max_element(a.begin()+i,a.end());
dis_1 = distance(a.begin(),max_element(a.begin()+i,a.end()));
int temp_1 = a[i];
a[i]=maxy;
a[dis_1]=temp_1;
miny = *min_element(a.begin()+i,a.end());
dis_2 = distance(a.begin(),min_element(a.begin()+i,a.end()));
int perm = a[i+1];
a[i+1]=miny;
a[dis_2]=perm;
}
for(auto i=a.begin();i!=a.end();i++){
cout<<*i<<" ";
}
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int num;
cin>>num;
vector<int> a;
for(int i=0;i<num;i++){
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
int maxy,miny,dis_2,dis_1;
for(int i=0;i<a.size()-1;i=i+2){
maxy = *max_element(a.begin()+i,a.end());
dis_1 = distance(a.begin(),max_element(a.begin()+i,a.end()));
int temp_1 = a[i];
a[i]=maxy;
a[dis_1]=temp_1;
miny = *min_element(a.begin()+i,a.end());
dis_2 = distance(a.begin(),min_element(a.begin()+i,a.end()));
int perm = a[i+1];
a[i+1]=miny;
a[dis_2]=perm;
}
for(auto i=a.begin();i!=a.end();i++){
cout<<*i<<" ";
}
return 0;
}
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int num;
cin>>num;
vector<int> a;
for(int i=0;i<num;i++){
int x;
cin>>x;
a.push_back(x);
}
sort(a.begin(),a.end());
int maxy,miny,dis_2,dis_1;
for(int i=0;i<a.size()-1;i=i+2){
maxy = *max_element(a.begin()+i,a.end());
dis_1 = distance(a.begin(),max_element(a.begin()+i,a.end()));
int temp_1 = a[i];
a[i]=maxy;
a[dis_1]=temp_1;
miny = *min_element(a.begin()+i,a.end());
dis_2 = distance(a.begin(),min_element(a.begin()+i,a.end()));
int perm = a[i+1];
a[i+1]=miny;
a[dis_2]=perm;
}
for(auto i=a.begin();i!=a.end();i++){
cout<<*i<<" ";
}
return 0;
}
- Anonymous June 23, 2016