array6 challenfge

gudii9
gudii9 used Ask the Experts™
on
Hi,

I am working on below challenge.
http://codingbat.com/prob/p108997
Psedo code:
1. create new array of the portion of original array length
2. fill new array with rest of the elements
3. check to see if it has 6 if yes return true if no return false
4. retrun above boolean

I wrote my code as below
public boolean array6(int[] nums, int index) {
  int len=nums.length-index;
  int[] num=new int[len];
  //fill without using for loop but recursive way
    if(num.length==0){
    return false;
  }
  if(num.length==1&&!num.contains(6)){
    return false;
  }
   if(num.length==1&&num.contains(6)){
    return true;
  }
 
  
  return null;
}

Open in new window

Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Commented:
Why do you feel the need to create a new array?
You are trying to use a method named contains.  Can you point to it in the API?
Top Expert 2016
Commented:
since the challenge is to use a recursive approach, you need to

- check if index >= array size
- if yes, return false
- check if nums[index] == 6
- if yes, return true,
- return array6 function call passing nums and index+1
.

if you do so for [3, 5, 6, 0, 4], then the recursive calls are

array6(nums, 0)
array6(nums, 1)
array6(nums, 2) ==> return true

Sara

Author

Commented:
java 8 has below lamda for each method but coding bat do not support

public boolean array6(int[] nums, int index) {
 IntStream.of(nums).anyMatch(x -> x == 6);
}
Exploring ASP.NET Core: Fundamentals

Learn to build web apps and services, IoT apps, and mobile backends by covering the fundamentals of ASP.NET Core and  exploring the core foundations for app libraries.

Author

Commented:
public boolean array6(int[] nums, int index) {
  if(index>nums.length()){
    return false;
  }
    else if(nums[index]==6){
      return true;
    }
    else return arrays6[nums,index+1];
  }





/*- check if index >= array size
- if yes, return false
- check if nums[index] == 6
- if yes, return true,
- return array6 function call passing nums and index+1*/

Open in new window


above gives below error.

Compile problems:


Error:      else return arrays6[nums,index+1];
                              ^
Syntax error on token ",", . expected


see Example Code to help with compile problems
please advise

Author

Commented:
public boolean array6(int[] nums, int index) {
  if(index>=nums.length){
    return false;
  }
    else if(nums[index]==6){
      return true;
    }
    else return array6(nums,index+1);
  }

Open in new window


above passed all tests.
any improvements or alternate approaches?

Commented:
Your code is good.   My personal preference is to omit the elses.
public boolean array6(int[] nums, int index) {
  if(index>=nums.length){
    return false;
  }
  if(nums[index]==6){
    return true;
  }
  return array6(nums,index+1);
}

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