像素设定 牛客网 程序员面试金典 C++ Python

像素设定 牛客网 程序员面试金典 

  • 题目描述

  • 有一个单色屏幕储存在一维数组中,其中数组的每个元素代表连续的8位的像素的值,请实现一个函数,将第x到第y个像素涂上颜色(像素标号从零开始),并尝试尽量使用最快的办法。

  • 给定表示屏幕的数组screen(数组中的每个元素代表连续的8个像素,且从左至右的像素分别对应元素的二进制的从低到高位),以及int x,int y,意义如题意所述,保证输入数据合法。请返回涂色后的新的屏幕数组。

  • 测试样例:

  • [0,0,0,0,0,0],0,47

  • 返回:[255,255,255,255,255,255]

C++

class Render {
public:
    //run:4ms  memory:588k
    vector<int> renderPixel(vector<int> screen, int x, int y) {
        for(int i = x ; i <= y ; i++)
            screen[i/8] = screen[i/8] | (1<< (i % 8));
        return screen ;
    }
};

Python

class Render:
    #run:56ms memory:5728k
    def renderPixel(self, screen, x, y):
        for i in range(x,y+1):
            screen[i/8] = screen[i/8] | (1<<(i%8))
        return screen

 

posted @ 2018-09-20 00:40  vercont  阅读(122)  评论(0编辑  收藏  举报