leetcode 319. Bulb Switcher | 319. 灯泡开关
題目
https://leetcode.com/problems/bulb-switcher/
題解
本題將 對問題抽象的能力 的考察做到了極致。
思路
怎么理解(int)Math.sqrt(n)就是答案呢?
將n個(gè)開關(guān),從1...n進(jìn)行編號(一開始都是處于燈滅的狀態(tài));
第1輪,切換的開關(guān)為1,2,3...n
第2輪,切換的開關(guān)為2,4,6...
第3輪,切換的開關(guān)為3,6,9...
…
第n輪,切換的開關(guān)為n
反過來看:
第1棧燈,會(huì)在第1輪被切換狀態(tài)
第2盞燈,會(huì)在第1,2輪被切換
第3盞燈,會(huì)在第1,3輪被切換
第4盞燈,會(huì)在第1,2,4輪被切換
第5盞燈,會(huì)在第1,5輪被切換
第6盞燈,會(huì)在第1,2,3,6輪被切換
第7盞燈,會(huì)在第1,7輪被切換
…
第n盞燈,會(huì)在第n的因數(shù)(包括1和n)輪被切換
對于輸入n,進(jìn)行n輪切換后,被切換偶數(shù)次的燈會(huì)處于和最初相同的燈滅狀態(tài),被切換奇數(shù)次的燈會(huì)處于燈亮狀態(tài)。問題轉(zhuǎn)換為,求1,2,3,...,n中,有多少個(gè)數(shù)有奇數(shù)個(gè)因數(shù)。
由于因數(shù)都是成對出現(xiàn)的,因此只有完全平方數(shù)有奇數(shù)個(gè)因數(shù)。因此,<=n的數(shù)里面,有多少個(gè)完全平方數(shù)就是答案。
class Solution {public int bulbSwitch(int n) {return (int) Math.sqrt(n);} }總結(jié)
以上是生活随笔為你收集整理的leetcode 319. Bulb Switcher | 319. 灯泡开关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 316. Remove
- 下一篇: leetcode 318. Maximu