百度搜索 编程之战 天涯 编程之战 天涯在线书库 即可找到本书最新章节.

    “阿历克斯,再想想别的法子吧”,牛仔央求地说道。

    “唉,好吧”,杨成只好单手托腮,开始了思考。

    地图信息实例像这样:

    [true, true, true, false, true ]

    [false, false, true, false, false]

    [true, false, true, false, true ]

    [true, false, false, false, true ]

    [true, true, true, true, true ]

    这是一个5X5的矩阵。

    其中true代表可通行的区域,false标注的区域无法通行。

    那么,怎么把这个地图实例转为手机存储呢?

    一种最简单的方法,是把这个实例序列化为字符串,就像这样:

    “[[true,true,true,false,true],[false,false,true,false,false],[true,false,true,false,true],[true,false,false,false,true],[true,true,true,true,true]]“

    这种方法很有效,但缺点也很明显。

    占用的存储空间太多了,远远超过了10个字符的长度。

    所以,必须想一个方法,对地图信息进行压缩。

    杨成通过观察,发现了一种比较好的压缩方法。

    使用二进制!

    true可以用数字1来替代,false用数字0来替代。

    那么矩阵就成了0和1构成的数字矩阵。

    然后,将矩阵的每一行,看作是二进制数字。

    比方说,第一行:

    [true, true, true, false, true ]

    替换成数字:

    [1, 1, 1, 0, 1 ]

    看作二进制数字:

    “11101”

    然后将这个二进制数字,转换为36进制。

    得到小写字母“t”。

    这样,足足减少了4个字符,达到了压缩的目的!

    对矩阵的每一行都这么处理,就可以得到5个36进制字符。

    再将这5个字符用逗号分割开来,以表明行结束。

    总共只需要5+4=9个字符,其中包括4个逗号。

    这个方法是切实可行的,但还有更好的办法!

百度搜索 编程之战 天涯 编程之战 天涯在线书库 即可找到本书最新章节.

章节目录

编程之战所有内容均来自互联网,天涯在线书库只为原作者程序小猿的小说进行宣传。欢迎各位书友支持程序小猿并收藏编程之战最新章节