- 博客(14)
- 资源 (8)
- 收藏
- 关注
原创 正则表达式学习【断言、环视、预搜索】
最近学习中遇到正则表达式,学习记录下。说在前面的话推荐一个课程和两个网站1.编程胶囊正则表达式学习2.正则表达式调试网站3.正则表达式可视化网站其中断言内容容易记混,特意列了一个思维导图辅助记忆断言思维导图最后内容为了记录学习,如有错误,还请指出,必改正。...
2021-05-08 17:17:31
202
原创 [字符驱动设备]通过引入读写信号量,实现互斥访问
说在前面的话Linux是一个多任务操作系统,会存在多个任务共同操作同一段内存或设备的情况,这些任务可能会相互覆盖内存中的数据,进而造成内存数据混乱。造成这种现象的原因很复杂,主要有以下几个主要原因。1) 多线程并发。2)抢占式并发访问(2.6版本内核支持抢占,调度程序可以在任意时刻抢占正在运行的线程,从而运行其他线程)。3)中断程序并发访问。4)SMP(Symmetrical Multi-Processing)核间并发访问。以多线程访问为例,当多个控制线程共享相同内存时,需要确保每个线程看到一致
2021-04-27 15:53:43
392
原创 计算器(字符串表达式求值): 力扣 224.基本计算器I 227.基本计算器 进阶版本
【题目】给定一个字符串 str,str 表示一个表达式,其中只可能有整数、空格、加减乘除符号和左右括号,整数除法仅保留整数部分,返回公式的计算结果。【举例】str="48*((70-65)-43)+8*1",返回-1816。str="3+1 *4",返回 7。str="3+ (1*4)",返回 7。【说明】1.可以认为给定的字符串一定是正确的表达式,即不需要对 str 做公式有效性检查。2.如果是负数,就需要用括号括起来,比如"4*(-3)"。但如果负数作为公式的开头或括号部分的开头,则可以
2021-03-11 14:19:55
659
原创 C++ 成员函数做友元遇到的问题 (错误C2027:使用了未定义类型)
涨知识最近在学习C++ 友元函数(成员函数做友元)这里遇到了一个小问题学习记录下(这个老师讲的超级好,推荐)。起因想创建两个类,Building类和GoodGay类,Building类中设置公开访问的SittingRoom和私有的BedRoom,类GoodGay中有两个函数 visit1() 和 visit2(),想把成员函数visit1(),设置为Building类的友元函数来访问私有的BedRoom,但是却出现了问题,最开始的代码如下。#include<iostream> usin
2020-11-13 15:59:32
5200
6
原创 leetcode 57.插入区间
题目描述leetcode57.插入区间给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例 2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输出:[[1,2
2020-11-04 12:28:29
214
原创 求两个子数组最大的累加和
说在前面的话最近在学习算法,发现左神左程云讲的是真的好,相见恨晚,推荐大家去学习。【题目】给定一个数组,其中当然有很多的子数组,在所有两个子数组的组合中,找到相加和最大的一组,要求两个子数组无重合的部分。最后返回累加和。【要求】时间复杂度达到 O(N)这道题要想做的顺利,首先我们先需要知道一个算法原型,也就是这道题其实是算法原型的升级版本,其实算法原型就是leetcod 53.最大子序和,而其中的差异性,就是我们需要寻找一个位置把题目所给的数组分成无重复的两部分,而这两部分的和恰好又是最大的
2020-10-27 22:03:40
308
原创 浮点数求取平方根
最近在面试的时候被问到了这样一个问题,没有答好,记录学习下。浮点数求平方根首先我们思考这个题目,如果是求整数的平方根那么这个题目并不难,leetcode上也有同样的题目此处给出题目链接这种题目比较容易想到的就是二分法,但是浮点数求平方根有些细节需要我们注意!1) 浮点数求平方根,求取的结果势必是一个小数,那我们就需要考虑精度,也就是说在误差低于多少的时候,我们返回一个近似的值。2) 采用二分法的话,上界和下界,我们需要怎样设置?解答...
2020-10-27 10:09:12
3296
1
原创 排序算法-快速排序
快速排序(Quicksort)快速排序是冒泡排序的一种改进算法,它们都属于交换排序类。起源和基本思想快速排序在1960年由著名的计算机科学家霍尔(C.A.R.Hoare)提出。其主要算法思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都要比另外一部分的数据小,然后再按照此方法对这两部分数据分别进行快速排序,而整个排序过程可以递归进行,以此达到整个数据变成有序序列。理解根据算法思想,我们可以想到如果需要将数据分割分成两个独立的部分,我们就需要一个基准,然后根据基准进行分割
2020-10-26 10:57:37
327
原创 切蛋糕笔试题
题目描述小明请了k个小朋友来给他过生日,小明手头有若干块等宽的长条形的蛋糕,长度分别是a[0]. a[1], … a[N-1],为此他需要准备k块长度样的切片蛋糕,而且希望每个小朋友分到的蛋糕尽量多:1.所有蛋糕长度均为正整数2.我们将蛋糕切分为任意正整数长度的小块。3.可以丢弃部分或者全部原始蛋糕。4.可以丢弃原始蛋糕切剩下的部分。输入描述:第一行有两个整数, 第一个整数N表示有多少原始蛋糕,第二个整数k表示有多少个小朋友参加生日。其中(1<=N<=1e5, k可由64位无符号整
2020-09-28 11:13:47
1207
原创 C++ 引用和指针的区别
引用和指针的区别引用需在定义时赋初值(起别名! 这个东西必须存在才可以叫起别名,不存在指向空值的引用)指针无需在定义时赋初始值,在块作用域内定义的指针如果没有初始化,也将拥有一个不确定的值,即不存在指向空值的引用,但是存在指向空值的指针。引用指向一块特定的内存,不能被更改,一旦定义了引用,就无法令其在绑定到另外的对象,之后每次使用这个引用都是访问它最初绑定的那个对象。对指针进行赋值和拷贝,而且在指针的生命周期里,它可以先后指向几个不同的对象。引用本身不是一个对象,所以不能定义引用的引
2020-09-15 16:02:52
110
原创 Leetcode 322 零钱兑换 用动态规划解决 python3
题目要求:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。示例 1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/coin-chan
2020-07-18 21:00:39
288
原创 天嵌开发板 TQ210 S5PV210 中断方式按键实现
中断在裸机开发中是非常重要的一项学习内容,之前学习过STM32的中断实 现,是参考正点原子的代码,通过库函数的方式实现的,为了进一步深度理解 其中的道理,此次通过天嵌的TQ210开发板实现中断方式。 具体功能为,LED正常闪烁,当按键被按下的时候,通过串口打印信息,提 示按键被按下,此过程不影响LED正常闪烁。 中断执行过程具体如下图:...
2019-02-26 19:35:18
399
原创 TQ210天嵌开发板S5PV210 LED闪烁程序C语言代码记录
TQ210天嵌开发板S5PV210 LED闪烁程序C语言代码记录 之前也学习过LDE闪烁程序,一般通过如下方式实现: 主要思想是通过操作寄存器地址的方式操作寄存器,这种实现方式的优点就 是简单容易理解,但是具有一定的局限性,一般在较大的工程中不会这样实 现,因为通过直接操作地址的方式实现,必定会频繁查询数据手册,查询相 应...
2019-01-09 11:29:06
1641
1
原创 S5PV210通用Makefile文件编写记录
S5PV210通用Makefile文件编写记录 最近在学习S5PV210开发相关的知识,因为是入门一切都是新的,目前还是点灯阶段(哈哈哈哈),学习了rocky大佬讲的通用Makefile的编写,感觉真的很好,写下来希望能帮助和我一样的刚入门的小白。 之前也了解了一点点的Makefile文件编写比如说LED灯的Makefile文件编写,一般情况下,我们在LED灯这节会看到Makefile...
2019-01-07 10:06:55
1035
8
LeetCode 两数相加C语言源码
2018-11-13
LeetCode 两数之和C语言源码
2018-11-13
EDA 数字时钟课程设计 Quartus II 闹钟 整点报时 含报告 源代码
2017-09-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人