LeetCode题解
LeetCode上面刷的题目
梵高话葵
这个作者很懒,什么都没留下…
展开
-
老鼠试毒问题
7瓶水1瓶有毒3只老鼠,怎么找有毒的水,再加个条件,必须要求第二天出结果二分查找思路,每次均分两组,每组各取一滴水混合成新溶剂喂给老鼠,继续对导致老鼠死亡的一组水进行同上操作。假如是第1瓶有毒,过程演绎如下,第一只老鼠死于前一堆(mid=(0+6)/2=3, 即服用了第1、2、3、4瓶的混合溶剂),第二只老鼠死于前一堆(mid=(0+3)/2=1, 即服用了第1、2瓶的混合溶剂),第三只老鼠随意试一瓶,根据服用后状态即可判断有毒的水。二进制编码思路,对每瓶水二进制编码,所需编码位数正好为三位,将第一原创 2020-08-19 09:18:19 · 1421 阅读 · 0 评论 -
100盏灯开关问题
房间里有100盏电灯,编号为1,2,3……100,每盏灯上有一个按钮,初始时灯全都是关的。编好号的100位同学由房间外依次走进去,将自己编号的倍数的灯的按钮全部按一次,例如第一位同学把编号是1的倍数的灯的按钮按一下(此时100盏灯全亮),第二位同学把编号是2的倍数的灯的按钮按一下(此时只有50盏灯亮着,50盏被这个人按灭了)……第100位同学把编号是100的倍数的灯(即编号为100的灯)的按钮按一下,请问依次走完后,还有多少盏灯亮着?分析:编号1同学:打开所有的灯编号2同学:关闭了2、4、6…100编原创 2020-08-19 09:05:12 · 3184 阅读 · 0 评论 -
LeetCode位运算
原理基本原理0s表示一串0,1s表示一串1,^表示的异或操作,相同为0,不同为1x ^ 0s = x x & 0s = 0 x | 0s = xx ^ 1s = ~x(表示x取反操作) x & 1s = x x | 1s = 1sx ^ x = 0 x & x = x x | x = x利用 x ^ 1s = ~x 的特点,可以将一个数的位级表示翻转;原创 2020-06-15 11:33:23 · 191 阅读 · 0 评论 -
LeetCode之背包问题
1.0-1背包问题针对全局问题提出的分治问题,对于每个物品只有选择或不选择两种情况,所以属于0-1背包。最终的结果是得到如下所示的决策图:解决方案:1.分治法抽象问题,背包问题抽象为寻找组合(x1,x2,x3…xn,其中xi取0或1,表示第i个物品取或者不取),vi代表第i个物品的价值,wi代表第i个物品的重量,总物品数为n,背包容量为c。建模,问题即求max(x1v1 + x2v2...原创 2020-04-29 21:38:25 · 740 阅读 · 0 评论 -
LeetCode题解之动态规划
Dynamic_programming最长子序列最长递增子序列最长上升子序列一组整数对能够构成的最长链最长摆动子序列最长子序列已知一个序列 {S1, S2,…,Sn},取出若干数组成新的序列 {Si1, Si2,…, Sim},其中 i1、i2 … im 保持递增,即新序列中各个数仍然保持原数列中的先后顺序,称新序列为原序列的一个 子序列 。如果在子序列中,当下标 ix > iy 时,S...原创 2020-04-23 15:11:51 · 506 阅读 · 0 评论