java中使用压缩算法

能给我敲一个压缩算法吗?比如:1,1,1替换为0,1,3,其中替换后的第一位0是不变的,也就是个标识,第二位是被替换的数,第三位是被替换数的个数... 能给我敲一个压缩算法吗?比如:1,1,1 替换为 0,1,3,
其中替换后的第一位0是不变的,也就是个标识,第二位是被替换的数,第三位是被替换数的个数
展开
 我来答
厚以旋l8
2012-10-01 · TA获得超过1385个赞
知道小有建树答主
回答量:321
采纳率:0%
帮助的人:332万
展开全部
public ArrayList fun(int[] arr) {
//我只考虑正整数的情况
ArrayList<Integer> list = new ArrayList<Integer>();
int flag = -1;
int ct = 0;
for(int i=0;i<arr.length;i++) {
if(arr[i]!=flag) {
if(ct!=0) {
list.add(ct);
ct = 0;
}
flag = arr[i];
list.add(0);
list.add(arr[i]);
}
ct++;
}
list.add(ct);
return list;
}
追问
如果不是连续出现的三个数字,那就复制原始数据。比如1,1,1,2,替换为:0,1,3,2

这个可以实现么…
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式