自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(190)
  • 资源 (10)
  • 收藏
  • 关注

原创 死锁产生条件及解决方法

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

2021-08-15 10:01:34 339

原创 华为车BU面试

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

2021-07-17 10:33:35 2447 1

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

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 15:56:59 297

原创 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 15:28:52 117

原创 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 10:21:01 129

原创 C++动态内存分配

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

2021-05-12 21:26:38 437 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 16:44:20 318 1

原创 字节面试(后端开发)

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

2021-04-27 21:26:11 498

原创 猜数字问题

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

2021-04-24 11:03:40 302

原创 百度面试面经

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

2021-03-27 14:26:42 131

原创 阿里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 20:45:52 232

原创 11. 背包问题求方案数

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

2021-03-22 17:31:16 142

原创 剑指 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 16:49:51 86

原创 2021.3.21腾讯笔试

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

2021-03-22 09:59:35 276

原创 百度笔试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 09:03:09 291

原创 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 10:42:29 218

原创 腾讯面试汇总

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

2021-03-15 15:55:31 139

原创 程序保存

#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 14:33:08 158

原创 面试题 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 15:00:56 203

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

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

2021-03-08 21:38:31 146

原创 从第一个节点出发到最后一个节点的受限路径数(Dijkstra+记忆化搜索模板)

难度中等现有一个加权无向连通图。给你一个正整数n,表示图中有n个节点,并按从1到n给节点编号;另给你一个数组edges,其中每个edges[i] = [ui, vi, weighti]表示存在一条位于节点ui和vi之间的边,这条边的权重为weighti。从节点start出发到节点end的路径是一个形如[z0, z1,z2, ..., zk]的节点序列,满足z0= start、zk= end且在所有符合0 <= i <= k-1...

2021-03-07 17:23:09 372

原创 面试题 17.18. 最短超串

难度中等23假设你有两个数组,一个长一个短,短的元素均不相同。找到长数组中包含短数组所有的元素的最短子数组,其出现顺序无关紧要。返回最短子数组的左端点和右端点,如有多个满足条件的子数组,返回左端点最小的一个。若不存在,返回空数组。示例 1:输入:big = [7,5,9,0,2,1,3,5,7,9,1,1,5,8,8,9,7]small = [1,5,9]输出: [7,10]示例 2:输入:big = [1,2,3]small = [4]输出: []提示:bi

2021-03-07 16:42:51 116

原创 面试题 16.24. 数对和(自定义二分)

面试题 16.24. 数对和难度中等20设计一个算法,找出数组中两数之和为指定值的所有整数对。一个数只能属于一个数对。示例 1:输入: nums = [5,6,5], target = 11输出: [[5,6]]示例 2:输入: nums = [5,6,5,6], target = 11输出: [[5,6],[5,6]]提示:nums.length <= 100000class Solution {public: int lower_binfind(ve

2021-03-06 15:14:59 138

原创 排序方法总结

常用的排序方式包括快排、归并排序、堆排序等。其中,快速排序对于C++来说,可以很方便使用函数qsort、sort对目标序列进行排序。基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用三路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。sort是qsort的升级版,如果能用sort尽量用sort,使用也比较简单,不像qsort还得自己去写cm.

2021-03-04 21:59:02 260 1

原创 携程2021.3.4笔试

第一道:字符串处理对于(+ 8 3 2)(* 8 ( - 5 4) 3)计算其输出结果第二道:最大最小利连续子数组和(二分)对于一数组[1,2,3,4,5,6,7,8,9],分成连续的n份,找到其最小子数组和的最大值#include <map> #include <cmath> #include <queue> #include <cstdio> #include <string> #include

2021-03-04 21:54:58 514 1

原创 300. 最长递增子序列(Longes Increasing Subsequence, LIS)

难度中等1382给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:...

2021-03-04 16:03:54 277 1

原创 字典树使用

面试题 17.13. 恢复空格难度中等169哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!"已经变成了"iresetthecomputeritstilldidntboot"。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未

2021-03-01 15:11:08 121

原创 5692. 车队 II

难度困难18在一条单车道上有n辆车,它们朝着同样的方向行驶。给你一个长度为n的数组cars,其中cars[i] = [positioni, speedi],它表示:positioni是第i辆车和道路起点之间的距离(单位:米)。题目保证positioni< positioni+1。 speedi是第i辆车的初始速度(单位:米/秒)。简单起见,所有车子可以视为在数轴上移动的点。当两辆车占据同一个位置时,我们称它们相遇了。一旦两辆车相遇,它们会合并成一个车队,这...

2021-03-01 08:40:09 170

原创 递归乘法

面试题 08.05. 递归乘法难度中等37递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。示例1: 输入:A = 1, B = 10 输出:10示例2: 输入:A = 3, B = 4 输出:12提示:保证乘法范围不会溢出为了不使用*完成乘法运算,很容易想到移位操作(左移1位相当于乘2),对于A >> 1相当于除2,B<< 1相当于乘2,这样保证AB乘的结果不变,需要注意的是

2021-02-27 15:35:26 1190

原创 395. 至少有K个重复字符的最长子串(字符串分割)

395. 至少有K个重复字符的最长子串难度中等351给你一个字符串s和一个整数k,请你找出s中的最长子串,要求该子串中的每一字符出现次数都不少于k。返回这一子串的长度。示例 1:输入:s = "aaabb", k = 3输出:3解释:最长子串为 "aaa" ,其中 'a' 重复了 3 次。示例 2:输入:s = "ababbc", k = 2输出:5解释:最长子串为 "ababb" ,其中 'a' 重复了 2 次, 'b' 重复了 3 次。提示:...

2021-02-27 14:22:15 251

原创 差分数组(解决区间+a问题)

面试题 16.10. 生存人数难度中等27给定 N 个人的出生年份和死亡年份,第i个人的出生年份为birth[i],死亡年份为death[i],实现一个方法以计算生存人数最多的年份。你可以假设所有人都出生于 1900 年至 2000 年(含 1900 和 2000 )之间。如果一个人在某一年的任意时期处于生存状态,那么他应该被纳入那一年的统计中。例如,生于 1908 年、死于 1909 年的人应当被列入 1908 年和 1909 年的计数。如果有多个年份生存人数相同且均为最大值,输出...

2021-02-27 11:13:19 250

原创 04.10. 检查子树

难度中等检查子树。你有两棵非常大的二叉树:T1,有几万个节点;T2,有几万个节点。设计一个算法,判断 T2 是否为 T1 的子树。如果 T1 有这么一个节点 n,其子树与 T2 一模一样,则 T2 为 T1 的子树,也就是说,从节点 n 处把树砍断,得到的树与 T2 完全相同。示例1: 输入:t1 = [1, 2, 3], t2 = [2] 输出:true示例2: 输入:t1 = [1, null, 2, 4], t2 = [3, 2] 输出:false提示:树的

2021-02-26 21:07:59 135

原创 链表简单操作

面试题 02.06. 回文链表难度简单50编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false 示例 2:输入: 1->2->2->1输出: true 进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 这里关键难点在于O(1)的空间复杂度,为此采用将原链表的后半部分反转,并依次比较的操作实现。首先通过快慢指针的方法找到链表的中间节点half_node,对于链表长度N为偶数时,...

2021-02-26 14:41:02 174

原创 5687. 执行乘法运算的最大分数

难度中等给你两个长度分别n和m的整数数组nums和multipliers,其中n >= m,数组下标从 1 开始计数。初始时,你的分数为0。你需要执行恰好m步操作。在第i步操作(从 1 开始计数)中,需要:选择数组nums开头处或者末尾处的整数x。 你获得multipliers[i] * x分,并累加到你的分数中。 将x从数组nums中移除。在执行m步操作后,返回最大分数。示例 1:输入:nums = [1...

2021-02-21 14:09:30 202

原创 2021-02-18面试

计算机网络:简单介绍,TCP握手和挥手数据库:MySQL介绍数据结构:介绍简单的几种结构,链表如何确定有没有环map的实现接口,拓容方法,底层实现?1.给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。后端开发技术栈?...

2021-02-18 18:36:38 101

原创 MySQL面试笔记

目录MySQL数据类型脏读、不可重复读与幻读MySQL数据隔离级别SQL语言定义了三种操作数据库的能力MySQL数据类型MySQL数据库的数据类型主要是分为数值型,日期时间型以及字符串型这三个大类,具体如下图所示:MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数,MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。每个时间

2021-02-17 17:51:42 175 1

原创 5679. 一个图中连通三元组的最小度数

难度困难给你一个无向图,整数n表示图中节点的数目,edges数组表示图中的边,其中edges[i] = [ui, vi],表示ui和vi之间有一条无向边。一个连通三元组指的是三个节点组成的集合且这三个点之间两两有边。连通三元组的度数是所有满足此条件的边的数目:一个顶点在三元组内,而另一个顶点不在三元组内。请你返回所有连通三元组中度数的最小值,如果图中没有连通三元组,那么返回-1。示例 1:输入:n = 6, edges = [[1,...

2021-02-14 19:25:57 555

原创 5678. 袋子里最少数目的球

难度中等给你一个整数数组nums,其中nums[i]表示第i个袋子里球的数目。同时给你一个整数maxOperations。你可以进行如下操作至多maxOperations次:选择任意一个袋子,并将袋子里的球分到2 个新的袋子中,每个袋子里都有正整数个球。 比方说,一个袋子里有5个球,你可以把它们分到两个新袋子里,分别有1个和4个球,或者分别有2个和3个球。 你的开销是单个袋子里球数目的最大值,你想要最小化开销。请你返回进行上述操作...

2021-02-14 15:35:50 146

原创 992. K 个不同整数的子数组(双指针)

难度困难174给定一个正整数数组A,如果A的某个子数组中不同整数的个数恰好为K,则称A的这个连续、不一定独立的子数组为好子数组。(例如,[1,2,3,1,2]中有3个不同的整数:1,2,以及3。)返回A中好子数组的数目。示例 1:输入:A = [1,2,1,2,3], K = 2输出:7解释:恰好由 2 个不同整数组成的子数组:[1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].示例 2:...

2021-02-09 13:36:28 80

原创 1114. 按序打印(多线程)

难度简单237我们提供了一个类:public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); }}三个不同的线程 A、B、C 将会共用一个Foo实例。一个将会调用first()方法 一个将会调用second()方法 还有一个将会调用third()...

2021-02-08 11:24:28 167

编译完成的Ceres静态库

编译完成的Ceres静态库,解压后包括编译整理后的include和lib文件,直接在VS2017中包含路径即可,亲测可用!

2020-04-15

官网最新版cmake免安装包,解压即可用:cmake-3.17.1-win64-x64.zip

官网最新版cmake免安装包,解压即可用,官网下载有时候会很慢,这里提供了快速下载的方式。亲测可用,编译成功

2020-04-15

STM32驱动步进电机(SPWM).zip

通过STM32实现对步进电机的控制,速度可调,通过软件实现的细分(SPWM),使用方便,经实验验证效果良好。

2019-10-07

OV7670摄像头STM32驱动程序工程文件

通过STM32驱动OV7676摄像头的整个工程文档,工程还包括FIR滤波器的C语言实现,可以用于快速移植

2019-10-07

labview编写的简单串口调试助手.vi

利用LabView编写的串口调试助手,可以实现基本的一些功能,对于入门这有一定的帮助,LabVIEW的基础运用

2019-10-07

嵌入式Linux系统的的双路SPI内核映像

适用于飞凌公司的OKMX6Q-C核心板以及其他系列的跑Linux操作系统的嵌入式核心板,可以实现两路SPI数据传输,在默认一路SPI的基础上,增加了SPI2。包括/dev/spidev1.0和/dev/spidev0.0。

2019-07-31

STM32固件库使用手册的中文翻译版.pdf

STM32固件库函数手册中文翻译版,使用与F101与103,对其他型号的芯片也具有参考意义,有关于STM32的疑问欢迎留言

2019-07-31

基本时序逻辑设计.zip

通过VHDL语言在CPLD上实现基本时序逻辑设计,包括:按键去抖、计数器、流水灯、抢答器、移位寄存器

2019-07-31

IMX6DQRM寄存器手册(数据手册).pdf

IMX6DQRM_寄存器手册(数据手册),共71章,适用于初学者进行学习,有关于使用的问题欢迎留言探讨

2019-03-26

IMX6Q的linux环境下的GPIO_KEY驱动文件

这是IMX6Q的linux环境下的GPIO_KEY驱动文件,包括其中linux驱动gpio口做按键中断的函数函数,对于入门linux的新手来说有一定作用,便于理解底层驱动的编写

2019-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除