c盘清理的步骤是什么(如何清理C盘空间)
如何清理C盘空间怎么清理C盘的垃圾文件?每天上网会给电脑带来很多临时文件,这些垃圾文件不清理掉时间久了就会影响到电脑的运行速度。那怎
2022/12/08
(相关资料图)
题目:
已知一个由像素点组成的单色屏幕,每行均有w个像素点,所有像素点初始为0,左上角位置为(0,0)。
现将每行的像素点按照「每32个像素点」为一组存放在一个int中,再依次存入长度为length的一维数组中。
我们将在屏幕上绘制一条从点(x1,y)到点(x2,y)的直线(即像素点修改为1),请返回绘制过后的数组。
注意:
用例保证屏幕宽度w可被 32 整除(即一个int不会分布在两行上)
示例1:
输入:length = 1, w = 32, x1 = 30, x2 = 31, y = 0 输出:[3] 解释:在第 0 行的第 30 位到第 31 位画一条直线,屏幕二进制形式表示为 [00000000000000000000000000000011],因此返回 [3]
示例2:
输入:length = 3, w = 96, x1 = 0, x2 = 95, y = 0 输出:[-1, -1, -1] 解释:由于二进制 11111111111111111111111111111111 的 int 类型代表 -1,因此返回 [-1,-1,-1]
代码实现:
class Solution { public int[] drawLine(int length, int w, int x1, int x2, int y) { StringBuilder sb = new StringBuilder(); // 计算字符串的哪些位置需要置为1。 int start = y * w + x1, end = y * w + x2; for(int i = 0;i < 32 * length; ++i){ if(sb.length() >= start && sb.length() <= end){ sb.append("1"); } else{ sb.append("0"); } } int[] result = new int[length]; // 以32位为单位截取字符串转化为整型。 for(int i = 0;i < length; ++i){ // 注意此处int类型无法处理32位的1。可以使用Integer.parseUnsignedInt()或者Long.parseLong()方法。 result[i] = Integer.parseUnsignedInt(sb.substring(i * 32, i * 32 + 32), 2); } return result; }}