摘要: 题目链接:LeetCode 384 打乱数组 题目大意: 给你一个整数数组$nums$,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是等可能的。 题解: 参考自LeedCode官方题解 首先,我们考虑如何随机打乱一个数组。 不妨设数组$nums$,其长度为$n$。我们可以使用如下 阅读全文
posted @ 2022-02-06 21:35 ZZHHOOUU 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 1996 游戏中弱角色的数量 题目大意: 题解: 对于攻击值相同的角色,我们按照其防御值从小到大进行排序且按照攻击值从大到小开始遍历,这样就可以保证当前已经遍历过的最大防御值角色$q$的防御值$maxDef$严格大于当前角色$p$的防御值时,则此时$q$的攻击值一定严格大 阅读全文
posted @ 2022-02-06 14:29 ZZHHOOUU 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 470 用Rand7()实现Rand10() 题目大意: 题解: 只需要能够满足等概率的生成$10$个不同的数即可,具体的生成方法可以有很多种。 我们可以调用两次$Rand7()\(,那么可以生成\)[1, 49]$之间的随机整数,我们只用到其中的前$40$个用来实现$R 阅读全文
posted @ 2022-02-06 14:23 ZZHHOOUU 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目链接:LeetCode 面试题17.21 直方图的水量 题目大意: 题解: 动态规划 对于下标$i$,水能到达的最大高度等于下标$i$两边的最大高度的最小值,所以可以用动态规划递推出两边的高度最大值,然后遍历一遍数组,对于下标$i$处水能到达的最大高度就等于下标$i$两边的最大高度的最小值减去$ 阅读全文
posted @ 2022-02-06 14:09 ZZHHOOUU 阅读(27) 评论(0) 推荐(0) 编辑