摘要:
快速幂算法 最后求出的幂结果实际上就是在变化过程中所有当指数为奇数时底数的乘积。 1、没用快速幂的时候 就是在对一个数做幂运算的时候,比如说求2^10,一般我们是用循环做 如果幂大于0,我们直接算 如果等于0,我们直接return 1 如果小于0,我们先算大于0的情况,在求倒数 public lon 阅读全文
posted @ 2021-03-18 11:59
CRboyfriend
阅读(333)
评论(0)
推荐(0)
摘要:
链表翻转的算法 1、递归实现 class Solution { public ListNode reverseList(ListNode head) { if(head == null || head.next == null) { return head; } ListNode cur = rev 阅读全文
posted @ 2021-03-18 11:58
CRboyfriend
阅读(36)
评论(0)
推荐(0)
摘要:
排序算法 均按照升序演示 排序算法的稳定性:如果相等的两个元素,在排序前后的相对位置保持不变,我们就称为是稳定的排序算法,否则是不稳定的。 原地算法 In-place:不依赖额外的资源或依赖少数的额外资源,仅依靠输出来覆盖输入,空间复杂度为O(1)的都可以认为是原地算法 1、冒泡排序(Bubble 阅读全文
posted @ 2021-03-18 11:57
CRboyfriend
阅读(325)
评论(0)
推荐(0)
摘要:
投票算法 / Boyer-Moore算法 该算法可以用O(n)的时间复杂度和O(1)的空间复杂度找到其中的多数元素。给定一个大小为 n 的数组,多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素 算法步骤 需要对原数组进行两趟扫描,并且简单易实现。第一趟扫描我们得到一个候选节点candidat 阅读全文
posted @ 2021-03-18 11:56
CRboyfriend
阅读(151)
评论(0)
推荐(0)
摘要:
1、原码补码反码 正数 负数 原码 符号位为0 符号位为1 补码 原码 符号位不变,其他取反 反码 原码 补码+1 比如说: 5的原码: 00000000 00000000 00000000 00000101 -5的原码: 10000000 00000000 00000000 00000101 5的 阅读全文
posted @ 2021-03-18 11:55
CRboyfriend
阅读(245)
评论(0)
推荐(0)
摘要:
字符串匹配算法 1、KMP算法 KMP算法是模式串匹配算法,由三位学者一起发明,故将他们首字母组合命名,算法可以将字符串匹配的时间复杂度降低到O(m + n)级别 用法:字符串匹配 时间复杂度:O(m + n), 文本串加模式串的长度 空间复杂度:O(n) next数组长度,也就是模式串长度 1.1 阅读全文
posted @ 2021-03-18 11:52
CRboyfriend
阅读(209)
评论(0)
推荐(0)
摘要:
最大堆 / 最小堆 1、什么是堆? 堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 完全二叉树:若设二叉树的深度为k,除第 k 层外,其它各层 (1~k-1) 阅读全文
posted @ 2021-03-18 11:51
CRboyfriend
阅读(177)
评论(0)
推荐(0)
摘要:
最小生成树问题 简介 最小生成树是一副连通加权无向图中一棵权值最小的生成树。 最小生成树是图论算法中比较经典的问题,在现实生活中也有非常多的应用。有两种比较经典的算法,都是使用了贪心的思想解决: Prim算法(普利姆算法) Prim算法的每一步都会为一棵生长中的树添加一条边,该树最开始只有一个顶点, 阅读全文
posted @ 2021-03-18 11:49
CRboyfriend
阅读(185)
评论(0)
推荐(0)
摘要:
0 / 1 背包问题(0 / 1 knapsack problem) 背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放 阅读全文
posted @ 2021-03-18 11:45
CRboyfriend
阅读(259)
评论(0)
推荐(0)

浙公网安备 33010602011771号