美文网首页
一个亮灯灭灯的算法

一个亮灯灭灯的算法

作者: trump2018 | 来源:发表于2019-08-02 11:14 被阅读0次

题目是这样的, 有M盏灯,全是灭的, 经历N轮. 如第一轮每间隔0盏来改变灯的状态. 第二轮间隔1,第三轮间隔2.....
求N轮后所有灯的状态.

思路, 每一轮记录下第index 盏灯是否有参与变化,N轮下来,汇总所有灯的变化次数。最终根据所有灯变化次数的奇偶性就能得出最终的状态.

写了下python代码, 大约35行,还是蛮简洁的。这个算法复杂度O(N),但需要额外的存储空间.

loop_cnt = 30
total_cnt = 100

def make_input(total_cnt):
    input = []
    i = 0
    while i < total_cnt:
        i += 1
        input.append(0)
    return input

def fetch_interval(loop_cnt, input=[]):
    result = []

    idx = 0
    interval = loop_cnt + 1
    
    while idx < len(input):
        idx += interval
        if idx < len(input):
            result.append(idx)

    return result

if __name__ == '__main__':
    input = make_input(total_cnt)
    res = {}
    
    for i in range(loop_cnt):
        res_arr = fetch_interval(i, input=input)
        for x in res_arr:
            cnt = res.get(x, 0)
            cnt += 1
            res[x] = cnt
    print(res)
    

相关文章

  • 一个亮灯灭灯的算法

    题目是这样的, 有M盏灯,全是灭的, 经历N轮. 如第一轮每间隔0盏来改变灯的状态. 第二轮间隔1,第三轮间隔2...

  • 倦意崔入梦,灭灯盖被躺 蚊虫嗡嗡声,惊醒梦中人 起身驱蚊时,观览城市光 窗外月明镜,灯火璀璨长 几户家灯亮,思灯故...

  • 💰飞廉-捷报🤗@20161124

    off与on 惬意的灯灭灯亮,就在一键搞定哦,关键是现在就“键”~ :-) 比图片更真相 苍蝇也是肉,分钱也是钱啊...

  • 从《职来职往》中到底能学到什么?

    文/筱馨 那些年,相亲节目盛行。不管把电视转到什么频道,总能看到许多熟悉的亮灯灭灯场景。无意间,换到中国教育频道...

  • 夜的最后一章

    夜仔细想想,灯便亮了。 风想吹灭灯,却吹来了黎明。

  • 夜 仔细想想 灯 便亮了 风 想吹灭灯光 却吹来了黎明

  • 亮灯

    看着灯光亮起,居然有一丝的感动。不知道这个城市里面的人,现在是何感受,我也不知道这座城市它本身现在是何感受。是痛苦...

  • 亮灯

    从我住的五楼走到楼外,需要踏过68级台阶。每一层是16级,从一楼到外面,还有4级。每一层的16级,又分为两部分,一...

  • 亮灯

    一座城市,不管多晚总有一盏灯为你亮起总有一个人把你守候总有一首歌让你泪流满面总有一阵风吹得你忍不住回忆往事 岁月无...

  • 亮鸽护眼灯必然清除光污染!亮鸽护眼灯孩子防近视的选择!

    亮鸽护眼灯必然清除光污染!亮鸽护眼灯孩子防近视的选择! 亮鸽护眼灯无频闪、亮鸽护眼灯无蓝光、亮鸽护眼灯无眩光、亮鸽...

网友评论

      本文标题:一个亮灯灭灯的算法

      本文链接:https://www.haomeiwen.com/subject/sigkdctx.html