Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ou.cs
Fucking Algorithm
提交
6f45fbc3
F
Fucking Algorithm
项目概览
ou.cs
/
Fucking Algorithm
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Fucking Algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6f45fbc3
编写于
3月 10, 2020
作者:
L
labuladong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add translator ExcaliburEX MasonShu yx-tan
上级
51d316f3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
7 addition
and
4 deletion
+7
-4
README.md
README.md
+3
-0
高频面试系列/一行代码解决的智力题.md
高频面试系列/一行代码解决的智力题.md
+4
-4
未找到文件。
README.md
浏览文件 @
6f45fbc3
...
...
@@ -132,6 +132,7 @@ git clone --depth 1 https://github.com/labuladong/fucking-algorithm.git
[
build2645
](
https://github.com/build2645
)
,
[
CarrieOn
](
https://github.com/CarrieOn
)
,
[
Dong Wang
](
https://github.com/Coder2Programmer
)
,
[
ExcaliburEX
](
https://github.com/ExcaliburEX
)
,
[
floatLig
](
https://github.com/floatLig
)
,
[
Fulin Li
](
https://fulinli.github.io/
)
,
[
Funnyyanne
](
https://github.com/Funnyyanne
)
,
...
...
@@ -143,6 +144,7 @@ git clone --depth 1 https://github.com/labuladong/fucking-algorithm.git
[
Kevin
](
https://github.com/Kevin-free
)
,
[
Lrc123
](
https://github.com/Lrc123
)
,
[
lriy
](
https://github.com/lriy
)
,
[
MasonShu
](
https://greenwichmt.github.io/
)
,
[
Master-cai
](
https://github.com/Master-cai
)
,
[
miaoxiaozui2017
](
https://github.com/miaoxiaozui2017
)
,
[
natsunoyoru97
](
https://github.com/natsunoyoru97
)
,
...
...
@@ -165,6 +167,7 @@ git clone --depth 1 https://github.com/labuladong/fucking-algorithm.git
[
wsyzxxxx
](
https://github.com/wsyzxxxx
)
,
[
xiaodp
](
https://github.com/xiaodp
)
,
[
youyun
](
https://github.com/youyun
)
,
[
yx-tan
](
https://github.com/yx-tan
)
,
[
Zero
](
https://github.com/Mr2er0
)
,
[
Ziming
](
https://github.com/ML-ZimingMeng/LeetCode-Python3
)
...
...
高频面试系列/一行代码解决的智力题.md
浏览文件 @
6f45fbc3
...
...
@@ -49,7 +49,7 @@ bool canWinNim(int n) {
最后,你的对手只能拿 1 了。
这样下来,你总共拥有
$2 + 9 = 11$ 颗石头,对手有 $5 + 1 = 6$
颗石头,你是可以赢的,所以算法应该返回 true。
这样下来,你总共拥有
`2 + 9 = 11`
颗石头,对手有
`5 + 1 = 6`
颗石头,你是可以赢的,所以算法应该返回 true。
你看到了,并不是简单的挑数字大的选,为什么第一次选择 2 而不是 5 呢?因为 5 后面是 9,你要是贪图一时的利益,就把 9 这堆石头暴露给对手了,那你就要输了。
...
...
@@ -101,15 +101,15 @@ int bulbSwitch(int n) {
我们假设只有 6 盏灯,而且我们只看第 6 盏灯。需要进行 6 轮操作对吧,请问对于第 6 盏灯,会被按下几次开关呢?这不难得出,第 1 轮会被按,第 2 轮,第 3 轮,第 6 轮都会被按。
为什么第 1、2、3、6 轮会被按呢?因为
$6=1
\t
imes6=2
\t
imes3$
。一般情况下,因子都是成对出现的,也就是说开关被按的次数一般是偶数次。但是有特殊情况,比如说总共有 16 盏灯,那么第 16 盏灯会被按几次?
为什么第 1、2、3、6 轮会被按呢?因为
`6=1x6=2x3`
。一般情况下,因子都是成对出现的,也就是说开关被按的次数一般是偶数次。但是有特殊情况,比如说总共有 16 盏灯,那么第 16 盏灯会被按几次?
$16=1
\t
imes16=2
\t
imes8=4
\t
imes4$
`16=1x16=2x8=4x4`
其中因子 4 重复出现,所以第 16 盏灯会被按 5 次,奇数次。现在你应该理解这个问题为什么和平方根有关了吧?
不过,我们不是要算最后有几盏灯亮着吗,这样直接平方根一下是啥意思呢?稍微思考一下就能理解了。
就假设现在总共有 16 盏灯,我们求 16 的平方根,等于 4,这就说明最后会有 4 盏灯亮着,它们分别是第
$1
\t
imes1=1$ 盏、第 $2
\t
imes2=4$ 盏、第 $3
\t
imes3=9$ 盏和第 $4
\t
imes4=16$
盏。
就假设现在总共有 16 盏灯,我们求 16 的平方根,等于 4,这就说明最后会有 4 盏灯亮着,它们分别是第
`1x1=1`
盏、第
`2x2=4`
盏、第
`3x3=9`
盏和第
`4x4=16`
盏。
就算有的 n 平方根结果是小数,强转成 int 型,也相当于一个最大整数上界,比这个上界小的所有整数,平方后的索引都是最后亮着的灯的索引。所以说我们直接把平方根转成整数,就是这个问题的答案。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录