
总结
文章平均质量分 59
总结
重you小垃
这个作者很懒,什么都没留下…
展开
-
按照方法(更新中)
------------------------------------------数组1.前面/后面第一个小于/x小于等于/大于/大于等于 ->单调栈2.满足某条件的最小~或者最大 ~ ->二分3.维护集合 ->并查集4.一串英文字母,找出每个位置前一个相同元素的位置和后一个相同元素的位置。做法:比如用last[0]记录'a'最近位置,不断更新他就好了for (int i = 0; i < 26; ++i) last[i] = -1;for (int i = 0;原创 2021-03-21 09:53:05 · 801 阅读 · 0 评论 -
leetcode 报错总结
Line 1034: Char 9: runtime error: reference binding to misaligned address 0xbebebebebebebebe for type ‘int’, which requires 4 byte alignment (stl_vector.h) 0xbebebebebebebebe: note: pointer points here SUMMARY: UndefinedBehavior翻译:第1034行:字符9:运行时错误:引用绑定到原创 2020-12-02 19:56:33 · 7359 阅读 · 0 评论 -
小知识点总结(更新中)
1: long long ans; 在运算过程中也要把对应的加数类型转换(long long),用double会损失精度。初始值比较大时赋值时末尾加上ll例题:蓝桥杯立方和2:1个字节:最大0111,1111 最小 1000,0000 范围是-128到127const int MAX = ~(1 << 31);const long long MAX2 = ~(1LL << 63);const int MIN = (1 << 31);在c++可以直接用:IN原创 2021-04-09 12:10:43 · 762 阅读 · 0 评论 -
关于复杂度的思考
给出题目,先看问题规模,进而来判断时间复杂度,来推断算法知识点- 常见的时间复杂度:二分查找:logn排序函数:nlogn如果个人经验不够,那就选择不超过10^8。题目通常是1s。 时钟周期:2.5Ghz = 2500000000hz=2.5*10^9hzN=10000000——O(n),只准遍历一遍,不准排序。N=100000——O(nlogn),可能有排序,或者二分。N=20——O(2^N),指数时间,二进制枚举。N=1000, O(N^3), 1s,只有或运算。——值得尝试。N=10原创 2020-11-02 15:15:57 · 4324 阅读 · 0 评论 -
2020-11-2 二分查找的适用题型以及使用模板
1.什么样的题目可能会用二分?二分的本质:• 存在一个整数m。使得• 当i<=m时,f(i)为真(假)。• 当i>m时,f(i)为假(真)。• 因为这个性质能使我们找到分界点:• 当f(i)为真时,i <=分界点m。• 当f(i)为假时,i>分界点m.通俗易懂的说,题目中有唯一的分界线,在分界线两边性质不一样。这样的题目适用于用二分查找。题目上的特征:尽可能数量多;满足条件的最小;满足条件的最多;2.举例题目leetcode455:• 假设你是一位很棒的家长原创 2020-11-02 16:51:22 · 275 阅读 · 0 评论 -
位运算技巧
(1)判断数字x的每一位没有重复数字(位运算用作集合)(2)得状态码(2)判断两个数字的每一位是否出现了重复(位运算用作集合)比如:36和64都出现了636 状态为 0001001000,64 状态为 00010100000001001000 & 0001010000 == 1这时就发生了重复(3)判断当前状态是否出现了0-9全部的数字 (位运算用作集合)(4)A 和 B出现是在n个位置上的组合,A和B个数都是0到n(5)异或(不同为1,相同为0):不同为B,相同为A。(6)判断一个整原创 2021-05-26 10:38:02 · 253 阅读 · 0 评论 -
蓝桥杯环境 + vscode配置
1.9:00-13:00C/C++开发环境:Dev-cpp 5.4.0 或 CodeBlocks 20.03、C/C++ API 帮助文档2.Dev-cpp安装后的配置2.1修改语言Tools ->2.2设置字体2.3设置注释快捷键2.2支持c++11标准2.3如果调试没反应原创 2021-06-04 10:48:19 · 16360 阅读 · 4 评论 -
简单数论(更新中)
//快速幂long long f(int m, int n){ int ans = 1; while (n){ if (n & 1){ ans *= m; } m *= m; n >>= 1; } return ans;}#include <bits/stdc++.h>using namespace std;//拓展欧几里求4x+6y=18 int exgcd(int a, int b, int &x, int &.原创 2021-04-12 21:07:49 · 297 阅读 · 0 评论 -
正则表达式(c++11)
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。两个链接:https://www.runoob.com/regexp/regexp-syntax.htmlhttps://blog.youkuaiyun.com/qq_34802416/article/details/79307102...原创 2021-04-06 20:38:32 · 109 阅读 · 0 评论 -
数论基础(算法笔记)
1.最大公约数,最小公倍数int gcb(int a, int b){ //最大公约数 if (b == 0) return a; return gcb(b, a % b);}//最小公倍数 a/gcb(a, b)*b; 防溢出2.分母的四则运算#include <bits/stdc++.h>using namespace std;/*规则:为0时,fenzi为0,fenmu为1,当作整数处理fenmu始终大于 0,正负号移到分子上*/struct fenshu原创 2021-04-04 22:04:59 · 180 阅读 · 0 评论 -
按照题型(总结)
在做题之前,先考虑边界(数组为空的情况,直接结束)。数组1.hash 需要对数组两层枚举:一层枚举,另外一层用map实现的hash,考虑一下是否可以边枚举边构造map,一旦遇到结果直接退出,这样可以减少时间。2.双指针 使用之前看先排序能否减少复杂度。3.矩阵转换类 4.dfs 求子序列5.特殊矩阵 /*如果一个矩阵从上往下,从左往右依次递增,查找元素的话可以从左下角元素(或者右上角)坐标开始,这两个位置比较特殊。以左下角为例,如果该元素大于当前元素j++,如果小于该元素i原创 2021-04-04 21:33:41 · 200 阅读 · 0 评论