首页 > 试题广场 >

像素设定

[编程题]像素设定
  • 热度指数:7962 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

有一个单色屏幕储存在一维数组中,给定表示屏幕的数组screen(数组中元素二进制表达的每一位分别对应连续的8个像素,二进制位数的从低到高对应像素的从左到右),用函数实现将第x到第y个像素涂上颜色(像素标号从零开始),返回涂色后的新的屏幕数组。请尝试尽量使用最快的办法并保证输入数据合法性。

测试样例:
[0,0,0,0,0,0],0,47
返回:[255,255,255,255,255,255]
有一个点要注意:数组 screen (数组中的每个元素代表连续的8个像素,且从左至右的像素分别对应元素的二进制的从低到高位)

# -*- coding:utf-8 -*-
class Render:
    def renderPixel(self, screen, x, y):
        for i in range(x, y + 1):
            # 找出处于元素的哪一位 (从低到高)
            k = i % 8
            # 找出哪一个元素
            t = i / 8
            screen[t] = screen[t] | (1 << k)
        return screen

发表于 2016-08-04 09:10:53 回复(0)