zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 52

    Bulb Switcher

    要点:数学题一直是弱项,关键是推理思维总是不清晰。比如这题,模糊的知道因子对决定了最后亮灯的个数,但是具体的推理就没记住
    先说答案,因为code极其简单:int(math.sqrt(n))

    • 开始的时候理解错误,every second的意思是从2开始每隔2(1开始计数),所以灯泡1只打开1次不会关闭
    • 有了1的基础,就好理解了:对于每一个灯泡,其被toggle的次数就是因子个数,所以只有完全平方数才是奇数次。当然这个也不是那么容易想,注意虽然完全平方数也有多个因子,但不影响奇偶性。
    • 想到这里,还有一种错误理解,就是统计n之前的完全平方数要用loop,实际上就算sqrt(n)就可以了
    class Solution(object):
        def bulbSwitch(self, n):
            """
            :type n: int
            :rtype: int
            """
            return int(math.sqrt(n))
    
    
  • 相关阅读:
    mysql 统计数据库基本资源sql
    java ffmpeg (Linux)截取视频做封面
    shutil模块
    json模块与pickle模块
    hashlib模块
    sys模块
    os模块
    paramiko模块
    Python reduce() 函数
    瀑布流展示图片
  • 原文地址:https://www.cnblogs.com/absolute/p/5690314.html
Copyright © 2011-2022 走看看