一.前缀和
vector<LL> s(n + 1);for(int i = 1; i <= n; ++ i)s[i] = s[i - 1] + a[i - 1];
开辟n + 1 赋值(1,n]。
第i个s[]表示前i个数的和,包括i
二.回文问题
1.lc5求最长的回文子串
dp求解
2.lc5666回文串分割
三.链表相关
1.反转链表-lc206题 剑指offer24
class Solution {public:ListNode* reverseList(ListNode* head) {//遍历节点ListNode* p = head;//前向节点ListNode* pre = nullptr;//记录最终的头节点(原尾节点) 也可以不用ListNode* lhead = nullptr;while(p != nullptr){//下一个节点ListNode* q = p->next;//当尾部节点为空时,说明来到了最后一个if(q == nullptr)lhead = p;//反过来指p->next = pre;pre = p;p = q;}return lhead;}};
stl容器自定义比较
第一种
static bool cmp(const pair<int, int>& p1, const pair<int, int>& p2){return p1.second > p2.second;}priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(&cmp)> qs(cmp);
第二种
class cmp2{public:bool operator()(const pair<int, int>& p1, const pair<int, int>& p2){return p1.second > p2.second;}};priority_queue<pair<int, int>, vector<pair<int, int>>, cmp2> qs;
stl greater vs less
map/set greater代表升序 , less代表降序
priority_queue/sort greater代表降序,less代表升序
https://blog.csdn.net/liqinzhe11/article/details/79278235
