二进制 运行 长度编码,重置计数器

Binary Run Length Encoding , reset counter

我有一个数组:{ 0 ,0 ,1 ,0 ,0 ,1 ,1 }

我想统计1前面有多少个0 以及 0 之前有多少个 1,

抱歉,如果基本上不清楚 它应该打印: 2 , 1 , 2 , 2

(2 个零,1 个一,2 个零,2 个一)

我需要重置计数器,但我不知道该怎么做

谢谢

    public static void main(String[] args) {

                int tab[] = { 0, 0, 1, 0, 1, 1 }; //
                int count0 = 0;
                int count1 = 0;
                for (int i = 0; i < tab.length; i++) {
                    if (tab[i] == 0) {
                        count0 = count0 + 1;

                    } else {
                        count1 = count1 + 1;
                    }

                }
                System.out.println(count0 + "\t" + count1);
        // prints 4 3
        // want it to print 2 1 2 2

            }
        }

当值从0变为1或从1变为0时重置。 也是在最后。

for (int num : tab) {
    if (num == 0) {
        count0++;
        if (count1 > 0) {
            System.out.println(count1);
            count1 = 0;
        }
    } else {
        count1++;
        if (count0 > 0) {
            System.out.println(count0);
            count0 = 0;
        }
    }
}
System.out.println(Math.max(count0, count1));