二进制 运行 长度编码,重置计数器
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));
我有一个数组:{ 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));