###鉴别出那瓶水有毒1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒
链接:https://www.nowcoder.com/questionTerminal/84726a200b4a4a0d95b9565b4c6eb216
来源:牛客网
每个老鼠只有死或活2种状态,因此每个老鼠可以看作一个bit,取0或1
N个老鼠可以看作N个bit,可以表达2^N种状态(其中第i个状态代表第i个瓶子有毒)
例如:当N=2时,可以表达4种状态
0,0( 一号老鼠活,二号老鼠活)
0,1( 一号老鼠活,二号老鼠死)
1,0( 一号老鼠死,二号老鼠活)
1,1( 一号老鼠死,二号老鼠死)
具体来说,有A、B、C、D这4个瓶子,一号老鼠喝A和B, 二号老鼠喝B和C
如果 0,0 ( 一号老鼠活,二号老鼠活),说明是D有毒,第0个状态代表第4个瓶子有毒
如果 0,1 ( 一号老鼠活,二号老鼠死) ,说明是C有毒 ,第1个状态代表第3个瓶子有毒
如果 1,0 ( 一号老鼠死,二号老鼠活) ,说明是A有毒 ,第2个状态代表第1个瓶子有毒
如果 1,1 ( 一号老鼠死,二号老鼠死) ,说明是B有毒 ,第3个状态代表第2个瓶子有毒
可以想象成用2进制来表示1000个数最少需要多少位
Cookie 禁用了,Session 还能用吗
1 | 你第一次访问网站时, |
如何进行防 SQL 注入
1 | 1 表单尽量用 post 提交,核心用户验证都走 post,避开 get容易暴露客户数据 |
大流量高并发量网站的解决方案
1 | 对比现实中饭店一下子同一个时间段来吃饭 比方中午https://learnku.com/articles/25886 |
sql分组
1 | 1) 算出每个班级中的学生,按照成绩降序排序;https://learnku.com/articles/25903#topnav |
GET 与 POST 的区别
1 | GET在浏览器回退时是无害的,而POST会再次提交请求。 |
nginx 配置
1 | server { |
###判断两个有序数组是否有公共元素1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20// https://github.com/chunlintang/interview/blob/master/src/algorithms/common.php
function common($arr1, $arr2)
{
$len1 = count($arr1);
$len2 = count($arr2);
$common = [];
$i = $j = 0;
while ($i < $len1 && $j < $len2) {
if ($arr1[$i] > $arr2[$j]) {
$j++;
} elseif ($arr1[$i] < $arr2[$j]) {
$i++;
} else {
array_push($common, $arr1[$i]);
$i++;
$j++;
}
}
return $common;
}
猴子选大王,约瑟夫环
1 | // |
质数
1 | // 质数 |
PHP算法之二分查找
1 | /** |
UTF-8编码
1 |
|
缓存穿透缓存击穿缓存雪崩
1 | 缓存穿透 : DB 承受了没有必要的查询流量,意思就是查到空值的时候没有做缓存处理,再次查询的时候继续读库了 |
1 |
历经 20 天,我终于完成了这份专为程序员编写的英语学习指南
当你在浏览器中输入“google.com”并回车,会发生什么
2019年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目