![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题--算法
文章平均质量分 52
WC-fantastic687
这个作者很懒,什么都没留下…
展开
-
密码学--数学基础(公式推导及原理证明)
问题:ax mod b=c a^x ~ mod ~ b = c ax mod b=c已知a,b互质(两个数的最大公约数为1),给出a,b,c三个正整数,求x的自小正整数解。欧几里得算法概念:整数a,b的最大公约数一般表示为 gcd(a,b)终极奥义:gcd(a,b) = gcd(b,a%b)=> 将大规模的问题转变成小规模的问题 ,当转变成gcd(c,0)时,c即为最大公约数 1 当a>b,缩小问题规模的作用 2 当a<b,相当原创 2021-12-05 17:37:42 · 1184 阅读 · 0 评论 -
从前缀和数组到树状数组
前缀和前缀和数组:初始化:O(n)时间复杂度,顺序扫描原数组即可查询区间和:O(1)时间复杂度,S[j]-S[i]即为原数组i到j的区间和单点修改:O(n)时间复杂度,需要修改S[i]~S[n]的所有值慢,是因为S[i]的值与之前原数组中所有项都有关系弱化这种关系,即可加快单点修改速度,当然也会丧失部分查询速度,但是这种取舍是值得的。lowbit函数定义:lowbit(i)代表i这个数字,二进制表示的最后一位1的位权。lowbit(x) = x & (-x)树状数组改进前缀和原创 2021-11-28 19:20:40 · 177 阅读 · 0 评论 -
递推算法及解题套路
递推算法及解题套路递推基础算法讲解:斐波那却数列的递推公式:F(n) = F(n-1) + F(n-2)例题:leetcode-70.爬楼梯class Solution {public: int climbStairs(int n) { // if(n == 1){return 1;} // if(n == 2){return 2;} // int a = 1, b = 2, temp; // for(int i = 3; i原创 2021-09-16 13:00:22 · 573 阅读 · 0 评论 -
手撕红黑树(上、下)--插入调整
红黑树的平衡条件1.每个节点非黑即红。2.根结点是黑色。3.叶节点(NIL)是黑色。(这个叶节点通常是不被画出来的NIL节点)4.如果一个节点是红色,则它的两个子节点都是黑色。5.从根结点出发到所有叶节点路径上,黑色节点数量相同。问题1: 红黑树中,最长路径和最短路径长度的关系?答:根据平衡条件第4、5两点最短路径,都是黑色为最短路径,红黑相间为最长路径。所以可得到最长是最短的两倍。问题2:怎么理解条件3中的NIL结点答:就像文章中的标点符号,虽然他不属于文章内容部分,平时也不会原创 2021-08-24 21:13:35 · 251 阅读 · 0 评论 -
手撕AVL树-N*!!!
二叉排序树的基础知识名称:二叉排序树、二叉搜索树性质:1、左子树<根结点2、右子树>根结点用途:解决与排名相关的检索要求构造二叉排序树:/* * @Author: mikey.peng * @Date: 2021-08-08 19:52:23 * @Last Modified by: mikey.peng * @Last Modified time: 2021-08-08 19:52:23 */#include<iostream>#includ原创 2021-08-15 11:41:32 · 115 阅读 · 0 评论 -
leetcode专项面试题解析
Leetcode-1367. 二叉树中的列表(树+递归)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNod原创 2021-08-08 14:54:06 · 181 阅读 · 0 评论