Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

countClumps  challenge

Posted on 2016-08-14
10
Medium Priority
?
344 Views
Last Modified: 2016-08-17
Hi,

I am working on below challenge

http://codingbat.com/prob/p193817


Say that a "clump" in an array is a series of 2 or more adjacent elements of the same value. Return the number of clumps in the given array.

countClumps([1, 2, 2, 3, 4, 4]) → 2
countClumps([1, 1, 2, 1, 1]) → 2
countClumps([1, 1, 1, 1, 1]) → 1

i am not clear on the description of the challenge. please advise
0
Comment
Question by:gudii9
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
10 Comments
 
LVL 38

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 41756126
gudii9 - where are you from, what is your native language?
0
 
LVL 38

Accepted Solution

by:
Gerwin Jansen, EE MVE earned 2000 total points
ID: 41756128
You have to count blocks of the same numbers.

1 1 1 2 3 3 4 5 contains 2 blocks (numbers 1 and numbers 3)
0
 
LVL 7

Author Comment

by:gudii9
ID: 41756451
countClumps([1, 2, 2, 3, 4, 4]) → 2//this is clear as it has one 2's clump and one other 4's clump
countClumps([1, 1, 2, 1, 1]) → 2//this is clear
countClumps([1, 1, 1, 1, 1]) → 1//how it is 1?
is it because it has one clump of 5 1's in it?
0
Certified OpenStack Administrator Course

We just refreshed our COA course based on the Newton exam.  With 14 labs, this course goes over the different OpenStack services that are part of the certification: Dashboard, Identity Service, Image Service, Networking, Compute, Object Storage, Block Storage, and Orchestration.

 
LVL 38

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 41756540
Yes, one clump of 1's
0
 
LVL 7

Author Comment

by:gudii9
ID: 41758651
public int countClumps(int[] nums) {
  int counter=0;
  boolean flag=false;
  for(int i=0;i<nums.length-1;i++){
    if(nums[i]==nums[i+1]&&!flag){
      flag=true;
      counter++;
    }
    else if(nums[i]!=nums[i+1]){
      flag=false;
    }
  }
  return counter;
}

Open in new window


above passes all tests.
basically checking i with i+1  and making flag to true and repeat in if loop then in else check for inequality and make flag false there
1
 
LVL 7

Author Comment

by:gudii9
ID: 41759619
just thinking any other possible simple solutions/approaches for this? or any improvements, modifications, optimization to my code above?
0
 
LVL 38

Expert Comment

by:Gerwin Jansen, EE MVE
ID: 41759689
Can't think of an easier way, if you want a different way then you have to write different pseudo code first. But it works and passes the tests so you've learned some here right?
0
 
LVL 7

Author Comment

by:gudii9
ID: 41760276
yes definitely
0

Featured Post

Implementing Azure Infrastructure Exam 70-533

This course is designed to familiarize and instruct students in the content that is covered by Microsoft Exam 70-533, Implementing Microsoft Azure Solutions. It focuses on all the November 2016 objective domain topics.

Question has a verified solution.

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

When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
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 how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
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.
Suggested Courses

705 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