Amazon Interview Question
SDE1sTeam: WebStore
Country: India
Interview Type: Phone Interview
public static int sumProduct(int[] a, int[] b) {
if(a == null || b == null)
return 0;
int length = a.length > b.length ? a.length : b.length;
int sumProduct = 0;
int i = 0;
while(i < length) {
sumProduct += a[ i % a.length ] * b[ i % b.length ];
i++ ;
}
return sumProduct;
}
int multiply(int A[], int B[])
{
int lenA = sizeof(A)/sizeof(int);
int lenB = sizeof(B)/sizeof(int);
int sum = 0;
int i = 0, j = 0;
if(lenA > lenB)
{
for(; i < lenA; i++)
{
sum += A[i % lenA] * B[i % lenB];
}
}
else if(lenB > lenA)
{
for(; i < lenB; i++)
{
sum += B[i % lenB] * A[i % lenA];
}
}
else
{
for(; i < lenA; i++)
{
sum += A[i] * B[i];
}
}
return sum;
}
package algo;
public class ArrayMul {
public static double arrayMultiplication(int []arr1, int []arr2){
int len1= arr1.length;
int len2=arr2.length;
System.out.println(""+len1+""+len2);
double sum =0.0;
if(len1>len2){
for(int i=0,j=0;i<len1;i++){
sum = sum + arr1[i]*arr2[j];
j++;
if(j==len2){
j=0;
}
}
}else{
for(int i=0,j=0;i<len2;i++){
sum = sum + arr1[j]*arr2[i];
j++;
if(j==len1){
j=0;
}
}
}
return sum;
}
public static void main(String args[]){
int [] a= {2,1};
int [] b={1,2,3,4,5};
System.out.println("Sum :"+ArrayMul.arrayMultiplication(a, b));
}
}
package algo;
public class ArrayMul {
public static double arrayMultiplication(int []arr1, int []arr2){
int len1= arr1.length;
int len2=arr2.length;
System.out.println(""+len1+""+len2);
double sum =0.0;
if(len1>len2){
for(int i=0,j=0;i<len1;i++){
sum = sum + arr1[i]*arr2[j];
j++;
if(j==len2){
j=0;
}
}
}else{
for(int i=0,j=0;i<len2;i++){
sum = sum + arr1[j]*arr2[i];
j++;
if(j==len1){
j=0;
}
}
}
return sum;
}
public static void main(String args[]){
int [] a= {2,1};
int [] b={1,2,3,4,5};
System.out.println("Sum :"+ArrayMul.arrayMultiplication(a, b));
}
}
class Product {
Product(int sum, int[] array) {
this.sum = sum;
this.array = array;
}
final int sum;
final int[] array;
}
Product arrayProduct(int[] a, int[] b) {
int sum = 0;
int[] array = new int[Math.max(a.length, b.length)];
for (int i = 0; i < array.length; i ++) {
array[i] = a[i % a.length] * b[i % b.length];
sum += array[i];
}
return new Product(sum, array);
}
public static int multiplyAndSumArrays(int[] arrayA, int[] arrayB) {
int result = 0;
if (arrayA.length > arrayB.length) {
int arrayBIndex = 0;
for (int i = 0; i < arrayA.length; i++) {
arrayBIndex = i % arrayB.length;
result += arrayA[i] * arrayB[arrayBIndex];
}
}
else {
result = multiplyAndSumArrays(arrayB, arrayA);
}
return result;
}
class ProdArray {
private static int prodOfArray( int[] A, int[] B) {
int i, j, count=0;
if (A.length < B.length) {
int sum = prodOfArray(B, A);
return sum;
}
else {
for (i=0; i<A.length; i++) {
j = i % B.length;
count += A[i] * B[j];
System.out.println(A[i] + " * " + B[j] + "\t= " + A[i] * B[j]);
}
return count;
}
}
public static void main(String[] args) {
int[] a = {2, 7, 8, 9};
int[] b = {2, 13, 10};
System.out.println(prodOfArray(a,b));
}
}
- aimjwizards March 20, 2013