标签:
原题链接在这里: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
标签:
原文地址:http://www.cnblogs.com/Dylan-Java-NYC/p/5153558.html