算法
文章平均质量分 56
IreneByron
热爱,自由。
展开
-
排序算法(go实现)
参考文章: https://www.cnblogs.com/onepixel/articles/7674659.html https://blog.csdn.net/benben_2015/article/details/79231929 排序算法 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此也称为线性时间非比较类排序。.原创 2021-05-07 10:13:46 · 99 阅读 · 0 评论 -
Fisher-Yates 洗牌算法
leetcode题目: 打乱数组https://leetcode-cn.com/problems/shuffle-an-array/ 给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象 int[] reset() 重设数组到它的初始状态并返回 int[] shuffle() 返回数组随机打乱后的结果 示例: 输入 ["Solution", "shuffle..原创 2021-04-15 00:00:13 · 139 阅读 · 0 评论 -
鸡蛋掉落
谷歌的一道经典面试题,题目如下: https://leetcode-cn.com/problems/super-egg-drop/ 给你 k 枚相同的鸡蛋,并可以使用一栋从第 1 层到第 n 层共有 n 层楼的建筑。 已知存在楼层 f ,满足0 <= f <= n ,任何从 高于 f 的楼层落下的鸡蛋都会碎,从 f 楼层或比它低的楼层落下的鸡蛋都不会破。 每次操作,你可以取一枚没有碎的鸡蛋并把它从任一楼层 x 扔下(满足1 <= x <= n)。如果鸡蛋碎了,你就不能再..原创 2021-04-10 01:01:53 · 122 阅读 · 0 评论 -
Boyer-Moore 算法
Boyer-Moore 算法的详细步骤: 我们维护一个候选众数 candidate 和它出现的次数 count。初始时 candidate 可以为任意值,count 为 0; 我们遍历数组 nums 中的所有元素,对于每个元素 x,在判断 x 之前,如果 count 的值为 0,我们先将 x 的值赋予 candidate,随后我们判断 x: 如果 x 与 candidate 相等,那么计数器 count 的值增加 1; 如果 x 与 candidate 不等,那么计数器 count 的值减少 1。原创 2021-04-07 21:39:01 · 260 阅读 · 0 评论 -
异或运算
异或运算有以下三个性质。 任何数和 00 做异或运算,结果仍然是原来的数,即 a \oplus 0=aa⊕0=a。 任何数和其自身做异或运算,结果是 00,即 a \oplus a=0a⊕a=0。 异或运算满足交换律和结合律,即 a \oplus b \oplus a=b \oplus a \oplus a=b \oplus (a \oplus a)=b \oplus0=ba⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。 ...原创 2021-04-07 21:04:37 · 935 阅读 · 0 评论