颜值博主
码龄7年
关注
提问 私信
  • 博客:83,310
    83,310
    总访问量
  • 190
    原创
  • 1,529,746
    排名
  • 9
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2018-05-02
博客简介:

Yanpr919的博客

查看详细资料
个人成就
  • 获得15次点赞
  • 内容获得14次评论
  • 获得79次收藏
  • 代码片获得132次分享
创作历程
  • 49篇
    2021年
  • 50篇
    2020年
  • 37篇
    2019年
  • 54篇
    2018年
成就勋章
TA的专栏
  • Golang
    2篇
  • 面试
    14篇
  • 基本数据结构
    7篇
  • 链表
    3篇
  • 数论
    2篇
  • Python
    1篇
  • 位运算
    4篇
  • 数据结构
    4篇
  • 排序
    8篇
  • 二分
    7篇
  • KMP
    1篇
  • 前缀和、差分数组
    3篇
  • 滑动窗
    3篇
  • Floyd
    2篇
  • EEG
  • 机器学习
    2篇
  • Tsinghua OJ
    3篇
  • 计算机网络
    1篇
  • 递推公式
    2篇
  • 分支定界
    1篇
  • CSP 认证
    58篇
  • C++
    24篇
  • 字符串
    28篇
  • BFS
    10篇
  • 最小生成树
    3篇
  • 优先队列
    8篇
  • DFS
    9篇
  • 动态规划
    20篇
  • Dijkstra
    6篇
  • 并查集
    4篇
  • 背包问题
    5篇
  • 二叉树
    6篇
  • 网络流
    1篇
兴趣领域 设置
  • 硬件开发
    arm开发
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

死锁产生条件及解决方法

产生条件造成死锁必须达成的4个条件(原因):互斥条件:一个资源每次只能被一个线程使用。 请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:线程已获得的资源,在未使用完之前,不能强行剥夺。 循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。解决方法避免死锁就是破坏造成死锁的,若干条件中的任意一个,常见的方法如下:1.加锁顺序当多个线程需要相同的一些锁,但是按照不同的顺序加锁,死锁就很容易发生。如果能确保所有的线程都是按照相同的顺序获得锁,
原创
发布博客 2021.08.15 ·
401 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

华为车BU面试

车BU一面(7.17):多线程如何避免死锁 利用两个堆栈实现队列 给定二叉树形式的有序链表,转换成一个有序的双向链表 多态是啥?重载和重写区别 TCP协议的三次握手、四次挥手 深拷贝和浅拷贝的区别 类成员变量什么必须在初始化列表初始化...
原创
发布博客 2021.07.17 ·
2892 阅读 ·
3 点赞 ·
1 评论 ·
13 收藏

逆元、最大公约数、最小公倍数、快速幂

typedef long long ll;const ll mod = 1e9 + 7;//取模ll MOD(ll a, ll m) { a %= m; if (a < 0)a += m; return a;}// 求逆元ll inverse(ll a, ll m) { a = MOD(a, m); if (a <= 1)return a; return MOD((1 - inverse(m, a) * m) / a, m);}// 求最大公约数ll gcd(ll.
原创
发布博客 2021.07.04 ·
350 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Git常用命令

图形化查看日志:git log --graph --oneline --all单行极简化查看日志:git log --pretty=oneline查看各分支git branch -a查看远程与本地分支的联系git remote show origingit配置查看、修改新增git config —global —add configname configvalue删除git config —global —unset configname修改git config —gl..
原创
发布博客 2021.07.03 ·
149 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go 学习笔记

给定一个字符串,请将字符串里的字符按照出现的频率降序排列。func frequencySort(s string) string { m := make(map[byte]int) for i := range s { m[s[i]]++ } type pair struct { v byte cnt int } pairs := make([]pair, len(m)) for i, v := range m { pairs = append(pairs, pair
原创
发布博客 2021.07.03 ·
175 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++动态内存分配

malloc内存分配:malloc是动态内存申请函数,其会根据申请空间的大小来调用brk()、mmap()来实现虚拟内存空间的分配。其中brk()、mmap()是系统调用。malloc和mmap等内存分配函数只是建立进程的虚拟地址空间,并没有分配实际的物理内存。当进程访问没有建立映射关系的虚拟内存时会自动的触发一个缺页中断。缺页中断:当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作检查要访问的虚拟地址是否合法查找/分配一个物理页填充物理页内容(读取磁盘,或者直接置0,或者啥也不干
原创
发布博客 2021.05.12 ·
489 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

645. 错误的集合(异或寻找缺失的数)

难度简单集合s包含从1到n的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合丢失了一个数字并且有一个数字重复。给定一个数组nums代表了集合S发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入:nums = [1,2,2,4]输出:[2,3]示例 2:输入:nums = [1,1]输出:[1,2]提示:2 <= nums.leng...
原创
发布博客 2021.04.30 ·
457 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

字节面试(后端开发)

字节面试(系统架构-后开)一面 2021.04.27:unordered_map迭代输出的顺序和插入的顺序有关吗?无关 LRU实现?List+unordered_map 服务器和客户端通过HTTP连接,客户端分十次发送数据(每次1KB),服务器端会分几次read到?1次? HTTP2.0和1.1区别?多路复用什么意思。 虚函数如何实现多态?...
原创
发布博客 2021.04.27 ·
570 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

猜数字问题

374. 猜数字大小难度简单115猜数字游戏的规则如下:每轮游戏,我都会从1到n随机选择一个数字。 请你猜选出的是哪个数字。 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口int guess(int num)来获取猜测结果,返回值一共有 3 种可能的情况(-1,1或0):-1:我选出的数字比你猜的数字小pick < num 1:我选出的数字比你猜的数字大pick > num 0:我选出的数字和你猜...
原创
发布博客 2021.04.24 ·
363 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

百度面试面经

一面:项目 设计模式(分层,作用) 算法:二叉树迭代前序遍历二面:ping实现机制(IP) 多叉树如何转换成二叉树,且前序遍历一致,且保留父亲节点和兄弟节点的信息 算法:实现logn复杂度的pow(m,n)算法 贪吃蛇游戏实现,采用什么数据结构,如何实现食物产生方法。...
原创
发布博客 2021.03.27 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

阿里3.22笔试

第一题:简单的0/1背包问题给定N个体积,及容量M,问是否能存在一个选择够成功填满背包。int main(){ int N, M; while (cin >> N >> M) { int dp[10001]; int weight[1001] = { 0 }; for (int i = 0; i < N; ++i) { cin >> weight[i]; } fill(dp, dp + 10001, 6001); dp[
原创
发布博客 2021.03.22 ·
277 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

11. 背包问题求方案数

有N件物品和一个容量是V的背包。每件物品只能使用一次。第ii件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最优选法的方案数。注意答案可能很大,请输出答案模 109+7的结果。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有N行,每行两个整数vi,wi用空格隔开,分别表示第i件物品的体积和价值。输出格式输出一个整数,表示方案数模109+7的结果。...
原创
发布博客 2021.03.22 ·
189 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

剑指 Offer 51. 数组中的逆序对

难度困难364在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000通过归并排序,在排序过程中记录逆序对的数量。class Solution {public: int res = 0; vector<int>Des; // 中间数组 void merge(vector<int&g
原创
发布博客 2021.03.22 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2021.3.21腾讯笔试

第一题:链表遍历+链表复制题解:由于查询是随机的,跟遍历顺序无关,因此通过哈希记录所有需要查询的节点值。通过前序遍历树并更新路径,在遍历树的过程中判断,哈希表中存在的值就将当前路径链表复制,并将头指针存储在对应节点的map中,最后根据查询顺序输出。class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 你需要返回m个指针,第i个指针指向一条链,表示第i个问题的答案 * @param root Tr..
原创
发布博客 2021.03.22 ·
318 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

百度笔试3.16

#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string> #include <cstring> #include <iostream> #include <algorithm> #include <sstream> #include <time.h...
原创
发布博客 2021.03.17 ·
408 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

148. 排序链表(归并排序)

难度中等1048给你链表的头结点head,请将其按升序排列并返回排序后的链表。进阶:你可以在O(nlogn)时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围[0, 5 * 104]...
原创
发布博客 2021.03.16 ·
263 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

腾讯面试汇总

2021.3.15:无提前通知,突然打电话,我称之为摸底面。虚函数和虚函数表,虚函数表存储的位置 数据库中,主键和索引的区别 计算机网络中,time_wait状态位的含义,以及出现的原因 delete和delete[] 的区别由于基本上都没回答上来,面试官没再继续深问,所以这次摸底面直接给我摸没了,四分钟结束!...
原创
发布博客 2021.03.15 ·
192 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

程序保存

#include <map> #include <cmath> #include "pch.h"#define INF (0x3f3f3f3f)using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};struct ListNode { .
原创
发布博客 2021.03.15 ·
281 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试题 17.24. 最大子矩阵(二维前缀和)

难度困难61收藏分享切换为英文接收动态反馈给定一个正整数、负整数和 0 组成的 N × M矩阵,编写代码找出元素总和最大的子矩阵。返回一个数组[r1, c1, r2, c2],其中r1,c1分别代表子矩阵左上角的行号和列号,r2,c2分别代表右下角的行号和列号。若有多个满足条件的子矩阵,返回任意一个均可。注意:本题相对书上原题稍作改动示例:输入:[ [-1,0], [0,-1]]输出:[0,1,0,1]解释:输入中标粗的元素即为输出所表示的矩阵说...
原创
发布博客 2021.03.11 ·
247 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

面试题 17.07. 婴儿名字(并查集模板)

难度中等33每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量。有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来。给定两个列表,一个是名字及对应的频率,另一个是本质相同的名字对。设计一个算法打印出每个真实名字的实际频率。注意,如果 John 和 Jon 是相同的,并且 Jon 和 Johnny 相同,则 John 与 Johnny 也相同,即它们有传递和对称性。在结果列表中,选择字典序最小的名字作为真实名字。示例:..
原创
发布博客 2021.03.08 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多