Solved

matchUp  challenge

Posted on 2016-08-03
6
68 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 16

Accepted Solution

by:
krakatoa earned 500 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 16

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
MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

 
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 16

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

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
JavaFX TableView not displaying correctly 3 54
Why doesn't this text field show up on my Applet frame? 2 19
java example issue 3 20
collection output issue 9 36
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
A short article about problems I had with the new location API and permissions in Marshmallow
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

808 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