More efficient way of doing this? (java exercise)

  • Context: Comp Sci 
  • Thread starter Thread starter Arnoldjavs3
  • Start date Start date
  • Tags Tags
    Exercise
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
3 replies · 2K views
Arnoldjavs3
Messages
191
Reaction score
3

Homework Statement


Given 2 int arrays, a and b, of any length, return a new array with the first element of each array. If either array is length 0, ignore that array.

front11([1, 2, 3], [7, 9, 8]) → [1, 7]
front11([1], [2]) → [1, 2]
front11([1, 7], []) → [1]

Homework Equations

The Attempt at a Solution


Java:
public int[] front11(int[] a, int[] b) {
  if (a.length>=1 && b.length>=1) {
    return new int[] {a[0], b[0]};
  }
  else if(b.length==0 && a.length>0) {
    return new int[] {a[0]};
  }
  else if(b.length>1 && a.length==0) {
    return new int[] {b[0]};
  }
  return new int[] {};
}

Is there a more efficient way of doing this without having to check the length of both arrays?
 
Physics news on Phys.org
Can java increase the size of arrays easily? You could initialize an array, then add a[0] to it if a.length>0, then add b[0] to it if b.length>0.
 
mfb said:
Can java increase the size of arrays easily? You could initialize an array, then add a[0] to it if a.length>0, then add b[0] to it if b.length>0.
Is the bolded a hint ? Since arrays are of fixed lengths. I was just thinking as I was doing these challenges that writing a bunch of if statements felt a little too trivial and not challenging...
 
Arnoldjavs3 said:
Is the bolded a hint ?
No, it was a question. I never worked with Java. I know some languages can do that easily (e.g. PHP, JS and python), while in some others it is not advisable (e.g. C++) or completely impossible.

If an array cannot change size, your solution should be the easiest option.