【算法刷题】—7.24一题带你脑筋急转弯,灯泡开关

简介: ✨今日算法一题灯泡开关

✨今日算法一题


灯泡开关


文章目录


灯泡开关


题目描述

思路详解


本题首先一看并没有头绪,那么我们列出来几个看一下。

这里借用一个图解,左边表示第几轮,O表示亮,X表示暗。我们寻找一下规律。

>这里我们以第六个灯泡为例,我们发现,影响第六个灯泡的是1、2、3、6轮,仔细寻找规律发现,影响到的都是 6 的约数。并且如果这个数的约数是偶数个最终结果就是暗的,奇数个就是亮的。

那么对于 1 ~ n 的结果呢,我们发现对 1 ~ n 同时进行开根号,取得整数的最大值也就是结果。


难道是巧合吗???


自然不是,我们发现最后亮着的都是完全平方数(也就是可以开根号的),那么我们对 1 ~ n 同时开根号的时候,向下取最大整数值本身就是这个数组的完全平方数的个数。所以直接对于 n 平方根就可以了,向下取整哦,不太理解的小伙伴可以多看几遍哦!!!


代码与结果


✨总结


今天的题脑筋急转弯有些难度,虽然代码很简单,但是思维过程难得哦!

一起来思考思考吧!!!


相关文章
|
4月前
|
机器学习/深度学习 存储 算法
【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解
【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解
|
4月前
|
自然语言处理 算法
算法刷题(二十三):Bigram 分词
算法刷题(二十三):Bigram 分词
59 0
|
4月前
|
算法
算法刷题(二十二):宝石与石头
算法刷题(二十二):宝石与石头
54 0
|
3月前
|
存储 算法 C语言
【数据结构与算法 刷题系列】合并两个有序链表
【数据结构与算法 刷题系列】合并两个有序链表
|
1月前
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
【刷题记录】最大公因数,最小公倍数(辗转相除法、欧几里得算法)
|
1月前
|
算法 Python
【Leetcode刷题Python】改进的算法,高效求一个数的因子
一个高效的Python函数用于找出一个整数的所有因子,通过仅遍历到该数平方根的范围来优化性能。
30 0
|
3月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-2
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
3月前
|
算法 C++
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题-1
【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题
|
3月前
|
算法
【数据结构与算法 刷题系列】求带环链表的入环节点(图文详解)
【数据结构与算法 刷题系列】求带环链表的入环节点(图文详解)
|
3月前
|
算法
【数据结构与算法 刷题系列】判断链表是否有环(图文详解)
【数据结构与算法 刷题系列】判断链表是否有环(图文详解)