稀疏数组
参考视频:韩顺平老师的尚硅谷Java数据结构与java算法 https://www.bilibili.com/video/BV1E4411H73v
应用场景分析编写的五子棋程序中,有存盘退出和继续上盘的功能。
分析问题:
因为该二维数组的很多值是默认值0,因此记录了很多没有意义的数据。
稀疏数组(SparseArray)基本介绍当一个数组中大部分元素为0,或者为同一个值时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法是:
记录数组一共有几行几列,有多少个不同的值
把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模
应用实例思路及实现
二维数组转稀疏数组的思路:
1.遍历原始的二维数组,得到有效数据的个数sum2.根据sum就可以创建稀疏数组sparseArr = int[sum+1] [3]3.将二维数组的有效数据存入到稀疏数组中
稀疏数组转原始的二维数组的思路:
1.先读取稀疏数组的第一行,根据第一行数据,创建原始的二维数组,比如上面的 chessArr2 = int[11] [11]2.再读取稀疏数组后几行 ...
web安全
SQL注入技术
判断是字符型注入还是数字注入1、数字型注入当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。
测试步骤:
(1) 加单引号,URL:www.text.com/text.php?id=3’
对应的sql:select * from table where id=3’ 这时sql语句出错,程序无法正常从数据库中查询出数据,就会抛出异常;
(2) 加and 1=1 ,URL:www.text.com/text.php?id=3 and 1=1
对应的sql:select * from table where id=3’ and 1=1 语句执行正常,与原始页面如任何差异;
(3) 加and 1=2,URL:www.text.com/text.php?id=3 and 1=2
对应的sql:select * from table where id=3 and 1=2 语句可以正常执行,但是无法查询出结果,所以返回数据与原始网页存在差异
如果满足以上三点,则可以判断该URL存在数 ...