何智鹏
码龄4年
  • 78,378
    被访问
  • 90
    原创
  • 987,142
    排名
  • 63
    粉丝
  • 0
    铁粉
关注
提问 私信

个人简介:不想编程的程序员

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2019-01-09
博客简介:

weixin_44469806的博客

查看详细资料
  • 4
    领奖
    总分 560 当月 1
个人成就
  • 获得183次点赞
  • 内容获得26次评论
  • 获得750次收藏
创作历程
  • 6篇
    2022年
  • 42篇
    2021年
  • 42篇
    2020年
成就勋章
TA的专栏
  • 从零开始刷LeetCode
    2篇
  • 笔记
    38篇
  • 算法
    41篇
  • Acwing
    9篇
  • android开发
    1篇
  • SSM框架学习
    9篇
  • JQury
    2篇
  • java web
    9篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

LeetCode12 整数转罗马数字

用打表法,取出其中特殊的12个。class Solution {public: string intToRoman(int num) { int val[] = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; string util[] = {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}
原创
发布博客 2022.05.17 ·
25 阅读 ·
0 点赞 ·
0 评论

leetcode11 盛水最多的容器

最开始我没有很好的思路只能暴力求解,样例可以过,但是时间复杂度高了最终通不过,只能进一步优化。//暴力求解class Solution {public: int maxArea(vector<int>& height) { int res = 0, v = 0; for (int i = 0; i < height.size(); i ++) { for(int j = i + 1; j < heig
原创
发布博客 2022.05.16 ·
22 阅读 ·
0 点赞 ·
0 评论

c++中有关哈希表的STL操作

set基于红黑树实现,可以进行去重和排序操作。O(logn)。一些常用的函数有:s.insert(x);s.erase(x);s.size();s.find(x);s.count(x); //因为有去重性质,count()统计出现的次数要么是0,要么是1,可以替代find()s.empty();unordered_setO(1)。一些常用的函数:s.insert();s.erase();s.find();s.count();s.empty();map<.
原创
发布博客 2022.03.18 ·
1403 阅读 ·
1 点赞 ·
1 评论

与二进制有关的一些操作

n&1把n与1按位与,因为1除了最低位,其他位都为0,所以按位与结果取决于n最后一位,如果n最后一位是1,则结果为1.反之结果为0。&运算通常用于二进制取位操作,例如一个数 & 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。...
原创
发布博客 2022.03.17 ·
35 阅读 ·
0 点赞 ·
0 评论

c++实现读入一行字符串

string s;getline(cin, s);典型应用:读入一行,将单词的首字母大写。
原创
发布博客 2022.03.11 ·
439 阅读 ·
0 点赞 ·
0 评论

c++字符串转数字

例如:输入数字1234;string s;cin >> s;for(auto x : s) cout << x - '0' << endl;输出结果:1234
原创
发布博客 2022.02.25 ·
332 阅读 ·
0 点赞 ·
0 评论

2021-05-23

x >> i & 1;x 二进制表示,第 i 位 是1 还是0
原创
发布博客 2021.05.23 ·
37 阅读 ·
0 点赞 ·
0 评论

2的n次方快速写法

1 << n;
原创
发布博客 2021.05.19 ·
1216 阅读 ·
0 点赞 ·
0 评论

数论

1、质数定义:在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数(素数)。小于等于1的数既不是质数,也不是合数。质数的判定----试除法\sqrt{n}bool is_prime(int u) { if (u < 2) return false; for (int i = 2; i <= u / i; i ++ ) { if (u % i == 0) return false; } return tr
原创
发布博客 2021.05.13 ·
25 阅读 ·
0 点赞 ·
0 评论

欧几里得算法

int gcd(int a, int b){ return b ? gcd(b, a % b) : a;}
原创
发布博客 2021.05.08 ·
29 阅读 ·
0 点赞 ·
0 评论

最短路算法

一、朴素版Dijkstraint n, m; //n:点的个数 m:边的条数int g[N][N]; //存储每条边 int dist[N]; //存储1号点到每个点的最短距离bool st[N]; //存储每个点的最短路是否已经确定// 求1号点到n号点的最短路,如果不存在则返回-1int dijkstra(){ memset(dist, 0x3f, sizeof dist); dist[1] = 0; for(int i = 0; i &
原创
发布博客 2021.05.05 ·
26 阅读 ·
0 点赞 ·
0 评论

DFS

123的全排列作例子,每个叶节点就是一个答案深搜就是在每个结点不停往深里搜索的搜索方法。深搜很重要的有回溯和剪枝。回溯必须要还原现场打一个比方:回溯就相当于父母把你放在家里出去了,等父母回来如果你把房间弄乱了后果很严重。回溯也是这个道理回溯的代码一般是这样的:for(......){ st[i] = true; //结点被访问 /*......*/; //做一些其他的操作 dfs(u + 1); //递归下一层 st[i] = false; /*.....*/; //还原现场}
原创
发布博客 2021.04.19 ·
40 阅读 ·
0 点赞 ·
0 评论

并查集

干什么:将两个集合合并询问两个元素是否在一个集合当中并查集可以在近乎O(1)的时间复杂度快速支持以上两个操作。基本原理用树的形式维护所有集合,每一个集合的编号是根节点的编号,对于每一个点,都存储一个父节点,当想求某一个点属于哪个集合的时候,可以根据这个点的父节点往上一直找到根节点,当前结点属于的集合的编号就是树根的编号问题1:如何判断树根:if(p[x] == x);问题2:如何求x的集合编号:while(p[x] != x) x = p[x];问题3:如何合并两个集合:px是x的集合编
原创
发布博客 2021.04.18 ·
22 阅读 ·
0 点赞 ·
0 评论

数组模拟链表

思想:将指针弱化为下标代码模板
原创
发布博客 2021.04.11 ·
28 阅读 ·
0 点赞 ·
0 评论

离散化

离散化,把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。适用范围:数组中元素数值很大,但个数不是很多。比如将a[]=[1,3,100,2000,500000]映射到[0,1,2,3,4]这个过程就叫离散化。
原创
发布博客 2021.04.11 ·
25 阅读 ·
0 点赞 ·
0 评论

区间合并

什么是区间合并:假如给定 n 个闭区间[ai,bi],其中i=1,2,…,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1,2]和[2,3]可以合并为[1,3],[1,3]和[2,4]可以合并为[1,4],但是[1,2] 和 [3,4] 不可以合并。思路按区间左端点排序扫描整个区间,扫描过程中将所有有交集的区间合并,第i个区间与当前维护的区间的关系分三种情况:第i个区间在当前区间的内部,区间合并完以后左右端点st,ed不变第i个区间与当前区间有交集,但不在内部,区间合并
原创
发布博客 2021.04.11 ·
309 阅读 ·
1 点赞 ·
0 评论

双指针算法

常见问题分类:对于一个序列,用两个指针维护一段区间对于两个序列,维护某种次序,比如归并中合并两个有序序列的操作
原创
发布博客 2021.04.11 ·
19 阅读 ·
0 点赞 ·
0 评论

位运算

求n的第k位数字: n >> k & 1返回n的最后一位1: lowbit(n) = n & -n
原创
发布博客 2021.04.11 ·
17 阅读 ·
0 点赞 ·
0 评论

前缀和

什么是前缀和原数组: a[1], a[2], a[3], a[4], a[5], …, a[n]前缀和 Si为数组的前 i项和前缀和: S[i] = a[1] + a[2] + a[3] + … + a[i]注意: 前缀和的下标一定要从 1开始, 避免进行下标的转换前缀和的作用快速求出元素组中某段区间的和s[i] = s[i - 1] + a[i];模板int main(){ cin >> n >> m; for(int i = 1; i
原创
发布博客 2021.04.09 ·
35 阅读 ·
0 点赞 ·
0 评论

ios::sync_with_stdio(false)

加快cin的读入速度,可以拿来替代scanf
原创
发布博客 2021.04.09 ·
249 阅读 ·
1 点赞 ·
0 评论
加载更多