scores100 challenge

gudii9
gudii9 used Ask the Experts™
on
Hi,

I am working on below challenge

http://codingbat.com/prob/p179487

Pseudo Code:
1. loop through given array
2. find elemt a i position and i+1 position.
3. check their equality.
4. if equal return true
5. if not equal reurn false

I wrote my code as below
public boolean scores100(int[] scores) {
  
  boolean result=true;
  int len=scores.length;
for(int i=0;i<len-1;i++){
  if(scores[i]!=100&&scores[i+1]!=100){
   // i=i+1;
    result=false;
    
    return result;
  }
}
return result;
  

}

Open in new window



Expected      Run            
scores100([1, 100, 100]) → true      true      OK      
scores100([1, 100, 99, 100]) → false      true      X      
scores100([100, 1, 100, 100]) → true      true      OK      
scores100([100, 1, 100, 1]) → false      true      X      
scores100([1, 2, 3, 4, 5]) → false      false      OK      
scores100([1, 2, 100, 4, 5]) → false      false      OK      
other tests
OK      

I am not passing all tests

How to improve my psedo code, approach, code? please advise
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Topic Advisor
Most Valuable Expert 2016
Commented:
Your pseudo code looks OK to me, your code doesn't match. Assume that there are no 2 scores of 100 next to each other, set your flag to true once you've found one.

Author

Commented:
public boolean scores100(int[] scores) {
  
  boolean result=false;
  int len=scores.length;
for(int i=0;i<len-1;i++){
  if(scores[i]==100&&scores[i+1]==100){
   // i=i+1;
    result=true;
    
    return result;
  }
}
return result;
  

}
//Your pseudo code looks OK to me, your code doesn't match. Assume that there 
//are no 2 scores of 100 next to each other, set your flag to true once you've found one.

Open in new window


above passes all tests.
any improvements?
mccarlIT Business Systems Analyst / Software Developer
Top Expert 2015
Commented:
Your logic is good, the only thing that I would do differently, is that I think it reads even more simple if you remove the local variables, ie...
public boolean scores100(int[] scores) {
    for (int i = 0;i < scores.length - 1; i++) {
        if (scores[i] == 100 && scores[i+1] == 100) {
            return true;
        }
    }
    return false;
}

Open in new window

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial