Problem:
Start with 2 int arrays, a and b, of any length. Return how many of the arrays have 1 as their first element.
start1({1, 2, 3}, {1, 3}) → 2
start1({7, 2, 3}, {1}) → 1
start1({1, 2}, {}) → 1
Solution:
public int start1(int[] a, int[] b) { int count = 0; if (a.length > 0 && a[0] == 1) count++; if (b.length > 0 && b[0] ==1) count++; return count; }
ReplyDeletepublic int start1(int[] a, int[] b) {
int count = 0;
if (a.length > 0 && a[0] == 1)
count++;
if (b.length > 0 && b[0] ==1)
count++;
return count;
}
Wow... I implemented the wrong algorithm but still worked, just less efficient. I thought I needed to count the number of occurrences of the int 1 in both arrays, so I got this:
ReplyDeletepublic int start1(int[] a, int[] b) {
int count = 0;
int len = Math.max(a.length, b.length);
for(int i = 0; i < len; ++i) {
if(i < b.length && b[i] == 1)
count += 1;
if(i < a.length && a[i] == 1)
count += 1;
}
return count;
}
public int start1(int[] a, int[] b) {
ReplyDeleteint n=0;
if(a.length>=1 && a[0]==1)
n++;
if(b.length>=1 && b[0]==1)
n++;
return n;
}