![](https://i-blog.csdnimg.cn/direct/9a4081b05b0548b19a676f2d93f519f8.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
数据结构基础和刷的算法总结
shuperlee
一个渣渣硕的IT百科全书
展开
-
链表相关算法
1、反转链表。 ListNode* reverseList(ListNode* head) { //设置3个指针,pre用于修改指针方向,temp用于保存原链表下一个节点的位置 ListNode* cur=head; ListNode* pre=NULL; ListNode* temp; while(cur) { temp = cur->next; cur原创 2020-09-14 17:04:12 · 145 阅读 · 0 评论 -
红黑树
一、背景 在平衡二叉树(AVL)种,进行插入或删除操作后,需要对树进行调整,使其保持一个平衡状态,但是调整的成本很大,这时,有人提出了红黑树的概念。 二、性质 1.节点要么为红,要么为黑。 2.根节点必须为黑色。 3.红色节点的子节点必须为黑色(即没有连续的红节点) 4.对于每个节点,从该节点到其后代叶节点的所有简单路劲上,黑色节点的数目必须相同(最长路径不操过最短路径的2倍) 三、插入 此部分较难消化,后期再补充。。。。。。。 ...原创 2020-09-14 14:44:44 · 62 阅读 · 0 评论 -
滑动窗口
问题:小明去商店买m件装饰品,买大小相差最小的,店中的物品数量为n,按照大小排列。,每个物品都有一个美观值k,小明买的商品美观值必须不小于k,请问有多少种方案。 int main() { int n, m, k; string str; cin >> n >> m >> k; vector<int> ve; for (int i = 0; i < n; i++) { int temp...原创 2020-09-14 12:50:50 · 74 阅读 · 0 评论 -
递归算法
1.典型的斐波那契数列f(x) = f(x-1)+f(x-2)。 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路:此题是青蛙跳台阶问题的进阶版,应用到递归思想。考虑前n-1、n-2……种情况下,多付1、2……元,所以,对应的数学表达为f(x) = f(x-1)+f(x-2)+f(x-3)……=2f(n-1) fountion(int n) { if (n = 1) return 1; els...原创 2020-09-11 19:11:03 · 115 阅读 · 0 评论