簡體   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