int cnt = 0; int t = 0; //現在調べている数値が最初に出てくる位置 for( int i = 1 ; i < n ; i ++ ) { if( array[t] != array[i] ) { //今までと違う数値になった if ( i > t +1) { //次の数値の先頭(i)のが、現在の数値の先頭の隣(t+1)より大きかったら //現在の数値は2つ以上あったということ cnt ++ ; } //次からは、iの位置を先頭として調べる t = i; } }
//配列の最後に重複があっても(array[t] != array[i])で判定ができないので //ループの外で判定する if ( n > t + 1) { cnt ++ ; }