C (gcc), 7474 73 bytes
f(int*l){int s[10]={},r=1;for(;~*l;s[*l++]++)r*=!*l||s[*l-1]--;return!! r;}
Requires the input array to mark the end with -1. Example usage:
int main(int argc, char** argv) {
int a[] = {0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 0, -1};
printf("%d\n", f(a));
return 0;
}