People are asking for explaination , I am not giving full solution but an approach how to handle these kind of questions .
First for creating counter for any sequence we need to identify the states .
Lets say we are taking a sequence of 0-1-2-3 then the states of flip flop (counter design) will be (ff1-ff0) 00->01->10->11-> , only 2 flipflop will be sufficient to give output in 2 bits.
but for the above sequence as you see there are two digits of same kind 0,0,1,1,2,2,3,3 , for which binary values will be 00,00,01,01,10,10,11,11 we cant diffrenciate first 00 from 2nd 00 or third 01 from fourth 01 using only 2 bits so we will add 3rd bit as follow
000,100,001,101,010,110,011,111 here if you see i have just added one extra bit and we can now differenciate between each number seperately , if we made a counter for this sequence and take output of only first two flipflops (ff1,ff0) from (ff2,ff1,ff0) then our sequence is realized.
(PS for futher clearance on the topic refer Morris Mano book )