
算法
困死了1111
这个作者很懒,什么都没留下…
展开
-
一棵树转换成二叉树
待续原创 2020-10-02 00:00:44 · 889 阅读 · 0 评论 -
快速幂
(a * b) % p = (a % p * b % p) % plong long fastPower(long long base, long long power) { long long result = 1; while (power > 0) { if (power % 2 == 0) { //如果指数为偶数 power = power / 2;//把指数缩小为一半 base..原创 2020-09-16 12:50:36 · 112 阅读 · 0 评论 -
面试长见识
1.段错误2.num &= (num - 1)原创 2020-08-21 22:34:28 · 180 阅读 · 0 评论 -
辗转相除法求公因数公倍数
#include <bits/stdc++.h>using namespace std;//公因数int gcd(int a, int b){ int da = max(a,b); int xiao = min(a,b); if(da % xiao == 0) return xiao; else return gcd(xiao, da % xiao);}// 两个整数的最小公倍数等于两整数之积除以最大公约数 ...原创 2020-08-21 22:29:54 · 317 阅读 · 0 评论 -
快速排序和归并排序(分治法的魅力)
1.快排void quick_sort(int s[], int l, int r){ if (l < r) { int i = l, j = r, x = s[l]; while (i < j) { while(i < j && s[j] >= x) // 从右向左找第一个小于x的数 j--; if(i <原创 2020-08-17 20:22:37 · 183 阅读 · 0 评论 -
链表的归并排序
从合并两个有序数列开始原创 2020-08-14 20:49:32 · 103 阅读 · 0 评论 -
kmp快速理解记忆
先写next[]数组的,依据的算法来自胡凡的《算法笔记》p457,要结合里面的图理解:首先要明白:1.缀能节省时间,缀越长节省的时间越多,我们要尽可能使用长缀2.前缀是从第一个往右,后缀是从最后一个往左推3next[末尾]表示前缀的最后一位,即前缀的长度。通常来讲,next[i],i是后缀的下标,也是这个字串(也可以是某个字串的字串,无论如何,前缀一定是整个字串的首部)**给出...原创 2020-01-05 23:03:15 · 155 阅读 · 0 评论 -
哭泣!单链表反转
新建链表,头节点插入法(我阔怜的面试)public ListNode reverseList2(ListNode head) { 3 ListNode dummy = new ListNode(-1); 4 ListNode pCur = head; 5 while (pCur != null) { 6 ListNode pNex = pCur.next; 7 pCur.next = dummy.原创 2020-08-18 20:58:14 · 161 阅读 · 0 评论 -
线段树记忆(普通版)
学习资料:https://wmathor.com/index.php/archives/1175/https://www.cnblogs.com/jason2003/p/9676729.html洗澡去了,改日码一份记忆模板:转载 2020-07-27 20:05:23 · 185 阅读 · 0 评论