繁体   English   中英

二进制游程长度编码,复位计数器

[英]Binary Run Length Encoding , reset counter

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

我想计算1之前有0个,0之前有1个,

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

(2个零,1个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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM