LeetCode Bulb Switcher

原题链接在这里:https://leetcode.com/problems/bulb-switcher/

给定n,初始的时候灯都是灭的,让你进行进行开关灯。第一轮的时候把1的倍数反转(原来关就开,原来开就关),第二轮把2的倍数反转,以此类推到第n轮。

求最后灯打开的个数

 

对于素数,那么它仅有1和它本身,最后一定是关掉的。

对一普通的,一定是关掉的,因子成对出现

对于完全平方数,因为有一个倍数不成对出现,所以一定是打开的。比如4 => 1,4开; 2关

所以本题就是求1~n有几个完全平方数。

直接返回sqrt(n).

Time Complexity: O(1). Space: O(1).

AC Java:

1 public class Solution {
2     public int bulbSwitch(int n) {
3         return (int)Math.sqrt(n);
4     }
5 }

Reference: http://blog.csdn.net/murmured/article/details/50363720

你可能感兴趣的:(LeetCode Bulb Switcher)