###鉴别出那瓶水有毒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年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目