[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

matchUp  challenge

Posted on 2016-08-03
6
Medium Priority
?
123 Views
Last Modified: 2016-08-04
Hi,

I am working on below challenge
http://codingbat.com/prob/p136254

Psedo code description of approach :
1. loop through both arrays
2. identify each index element and compare to see differnce is atmost 2
3. if step2 is true return true
4. otherwise return false

I wrote my code as below

public int matchUp(int[] nums1, int[] nums2) {
  int count=0;
  for(int i=0; i<nums1.length-1;i++){
    if(Math.abs(nums1[i]-nums2[i+1])<=2){
      count++;
    }
  }
  return count;
}

Open in new window




I am not passing all tests due to edge cases.
Expected      Run            
matchUp([1, 2, 3], [2, 3, 10]) → 2      1      X      
matchUp([1, 2, 3], [2, 3, 5]) → 3      1      X      
matchUp([1, 2, 3], [2, 3, 3]) → 2      2      OK      
matchUp([5, 3], [5, 5]) → 1      1      OK      
matchUp([5, 3], [4, 4]) → 2      1      X      
matchUp([5, 3], [3, 3]) → 1      1      OK      
matchUp([5, 3], [2, 2]) → 1      0      X      
matchUp([5, 3], [1, 1]) → 1      0      X      
matchUp([5, 3], [0, 0]) → 0      0      OK      
matchUp([4], [4]) → 0      0      OK      
matchUp([4], [5]) → 1      0      X      
other tests
X      

How to improve my design, approach, code? please advise
0
Comment
Question by:gudii9
  • 3
  • 3
6 Comments
 
LVL 17

Accepted Solution

by:
krakatoa earned 2000 total points
ID: 41742228
WHY are you comparing nums1 indexes with nums2 indexes+1 ????????

You haven't read the question properly again.
0
 
LVL 7

Author Comment

by:gudii9
ID: 41742457
public int matchUp(int[] nums1, int[] nums2) {
  int count=0;
  for(int i=0; i<nums1.length-1;i++){
    if(Math.abs(nums1[i]-nums2[i])<=2){
      count++;
    }
  }
  return count;
}

Open in new window

oops that was type. I fixed as above. still failing some tests. please advise
Expected      Run            
matchUp([1, 2, 3], [2, 3, 10]) → 2      2      OK      
matchUp([1, 2, 3], [2, 3, 5]) → 3      2      X      
matchUp([1, 2, 3], [2, 3, 3]) → 2      2      OK      
matchUp([5, 3], [5, 5]) → 1      1      OK      
matchUp([5, 3], [4, 4]) → 2      1      X      
matchUp([5, 3], [3, 3]) → 1      1      OK      
matchUp([5, 3], [2, 2]) → 1      0      X      
matchUp([5, 3], [1, 1]) → 1      0      X      
matchUp([5, 3], [0, 0]) → 0      0      OK      
matchUp([4], [4]) → 0      0      OK      
matchUp([4], [5]) → 1      0      X      
other tests
X      
0
 
LVL 17

Expert Comment

by:krakatoa
ID: 41742495
please advise

My advice is that you read the question properly . . .  which you still haven't done.

You are being lazy again, and expecting us to tell you what to think, despite the fact that we've already told you HOW to think.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 7

Author Comment

by:gudii9
ID: 41742752
public int matchUp(int[] nums1, int[] nums2) {
  int count=0;
  for(int i=0; i<nums1.length;i++){
    if((Math.abs(nums1[i]-nums2[i])==2)||(Math.abs(nums1[i]-nums2[i])==1)){
      count++;
    }
  }
  return count;
}

Open in new window

Expected      Run            
matchUp([1, 2, 3], [2, 3, 10]) → 2      2      OK      
matchUp([1, 2, 3], [2, 3, 5]) → 3      3      OK      
matchUp([1, 2, 3], [2, 3, 3]) → 2      2      OK      
matchUp([5, 3], [5, 5]) → 1      1      OK      
matchUp([5, 3], [4, 4]) → 2      2      OK      
matchUp([5, 3], [3, 3]) → 1      1      OK      
matchUp([5, 3], [2, 2]) → 1      1      OK      
matchUp([5, 3], [1, 1]) → 1      1      OK      
matchUp([5, 3], [0, 0]) → 0      0      OK      
matchUp([4], [4]) → 0      0      OK      
matchUp([4], [5]) → 1      1      OK      
other tests
OK      

i made mistake. Did not notice two or less but not equal. I fixed as above now passes all tests. Any suggestion to improve above code?
0
 
LVL 17

Expert Comment

by:krakatoa
ID: 41742916
No. You've done it this time.

I'd suggest however that you take the biggest part of the lesson here from the (eventually correct) interpretation of the question. That's always going to be the challenge.
0
 
LVL 7

Author Comment

by:gudii9
ID: 41743199
No. You've done it this time.

I'd suggest however that you take the biggest part of the lesson here from the (eventually correct) interpretation of the question.

English is not my first language. some of the sentences i am having hard time to properly interpret. I will definitely do my best in improving.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this post we will learn different types of Android Layout and some basics of an Android App.
This article will show how Aten was able to supply easy management and control for Artear's video walls and wide range display configurations of their newsroom.
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
Six Sigma Control Plans
Suggested Courses
Course of the Month19 days, 17 hours left to enroll

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question