![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
超级码力奥
这个作者很懒,什么都没留下…
展开
-
【离散化+前缀和】Acwing802. 区间和
参考题解:https://www.acwing.com/solution/content/13511/ // 很好的分析过程:https://www.acwing.com/solution/content/13511/ #include<iostream> #include<algorithm> #include<vector> using namespace std; const int N = 300010; //n次插入和m次查询相关数据量的上界 int原创 2022-04-22 10:50:32 · 107 阅读 · 0 评论 -
剑指offer:合并两个排序的链表
我是真的傻逼。 https://www.acwing.com/solution/content/744/ /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* merg原创 2022-04-09 20:59:46 · 468 阅读 · 0 评论 -
剑指offer:反转链表
原题链接https://www.acwing.com/problem/content/description/33/ 参考链接:https://www.acwing.com/solution/content/6583/ (有动画) y总:https://www.acwing.com/solution/content/743/ 一个pre指针,保留前继节点,一个cur,指向当前节点,一个next,指向下一个节点。 每次: next保存cur的下一个节点 cur的next指向pre 向后移动一位:pre移到c原创 2022-04-09 20:33:37 · 164 阅读 · 0 评论 -
剑指offer:删除链表中重复的节点
原题链接:https://www.acwing.com/problem/content/27/ /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* deleteDu原创 2022-04-06 20:33:54 · 478 阅读 · 0 评论 -
剑指offer:在O(1)时间删除链表结点
原题链接:https://www.acwing.com/problem/content/85/ 简直不要太庙。借尸还魂了属于是。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: v原创 2022-04-06 19:41:44 · 1009 阅读 · 0 评论 -
剑指offer:数值的整数次方
直接上快速幂 原题链接:https://www.acwing.com/problem/content/description/26/ class Solution { public: double Power(double base, int exponent) { typedef long long LL; bool is_minus = exponent < 0; double res = 1; for(L原创 2022-04-06 19:33:06 · 309 阅读 · 0 评论 -
二分图,二分:关押罪犯
原题链接:https://www.acwing.com/problem/content/259/ 以下图源:https://www.acwing.com/solution/content/3042/ 看到了最大值最小,就可以想到二分了把。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=原创 2022-03-13 12:08:17 · 93 阅读 · 0 评论 -
剑指offer:旋转数组的最小数字
原题链接:https://www.acwing.com/problem/content/20/ class Solution { public: /* 我们发现除了最后水平的一段(黑色水平那段)之外, 其余部分满足二分性质:竖直虚线左边的数满足 nums[i]≥nums[0] ;而竖直虚线右边的数不满足这个条件。 分界点就是整个数组的最小值。 */ int findMin(vector<int>& nums) {原创 2022-04-05 16:22:30 · 279 阅读 · 0 评论 -
高精度:加法,减法,乘法,除法。使用vector实现。
#include<iostream> #include<vector> using namespace std; const int N=1e6+10; //C=A+B vector<int> add(vector<int> &A, vector<int> &B) { vector<int> C; int t=0; // 从低位到高位加 for(int i=0;i<.原创 2022-03-08 18:41:09 · 962 阅读 · 1 评论