- 博客(31)
- 收藏
- 关注
原创 2021-07-02
音视频基础知识数字音频信号的技术指标采样频率,就是每秒采集多少个样本,采样频率决定了声音的频率范围这里,注意,采样频率是音频频率的两倍,也就是44HZ的采样频率,对应之后的音频信号的频率就是22HZ,这是奈奎斯定律音质是和频率范围是成正比的采样深度,就是量化精度,决定了数字音频的动态范围。更大的采样深度有更高的量化精度,就是有更高的信噪比和保真度,不过采样深度越大,就会造成存储容量和传输的问题音频文件的数据量:f * b * s(采样频率 * 量化等级(多少bit量化) *
2021-07-02 11:40:26
284
原创 LeedCode刷题笔记-用两个栈实现一个队列
LeedCode刷题笔记-用两个栈实现一个队列题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,
2021-03-25 11:10:48
181
转载 C++中全局变量,局部变量,静态变量和常量
叶子在行动C++中全局变量,局部变量,静态变量和常量转自 https://blog.youkuaiyun.com/zcyzsy/article/details/52207085全局变量全局变量是在所有函数体的外部定义的,程序的所有部分(其他文件的代码)都可以使用。全局变量不受作用域的影响。全局变量的生命周期一直到程序的结束,全局变量是静态存储方式。如果在一个文件中使用extern关键字来声明另一个文件中存在的全局变量,那么这个文件可以使用这个变量。通常都是在一个.CPP文件的开始声明这个变量,在其他需要用到
2021-03-09 10:20:06
2891
2
原创 LeedCode刷题笔记-重复的子字符串
LeedCode刷题笔记-重复的子字符串题目描述给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: “abab”输出: True解释: 可由子字符串 “ab” 重复两次构成。示例 2:输入: “aba”输出: False示例 3:输入: “abcabcabcabc”输出: True解题代码class Solution {public: bool repeatedSubstringPa
2021-02-25 20:43:42
217
原创 LeedCode刷题笔记-罗马字母转数字
LeedCode刷题笔记-罗马字母转数字题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XX
2021-02-24 22:32:09
143
原创 LeedCode刷题笔记-替换所有的问号
LeedCode刷题笔记-替换所有的问号题目描述给你一个仅包含小写英文字母和 ‘?’ 字符的字符串 s,请你将所有的 ‘?’ 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。注意:你 不能 修改非 ‘?’ 字符。题目测试用例保证 除 ‘?’ 字符 之外,不存在连续重复的字符。在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。示例 1:输入:s = “?zs”输出:“azs”解释:该示例共有
2021-02-23 18:44:34
220
原创 LeedCode刷题笔记-计算器
LeedCode刷题笔记-计算器题目描述给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。示例 1:输入: “3+2*2”输出: 7示例 2:输入: " 3/2 "输出: 1示例 3:输入: " 3+5 / 2 "输出: 5说明:你可以假设所给定的表达式都是有效的。请不要使用内置的库函数 eval。解题代码int calculate(cha
2021-02-20 22:23:43
124
转载 嵌入式学习技术路线
嵌入式学习技术路线近期有学弟咨询如何系统学习嵌入式,推荐什么书籍,所以再补充一些。stm32和51单片机入门自不必说,说些进阶的路线。老师曾给我们仔细设计了一系列挑战任务。第一阶段称为stm32+RTOS阶段。任务1:裸板驱动,比如在裸板上点亮LED灯,一般是以stm32为平台,通过汇编代码手动配置最底层的寄存器,完成时钟树、GPIO口的初始化,重点1:理解软件和硬件是如何联系在一起的(地址,宏定义和typedef封装)。重点2:理解汇编语言操作寄存器的过程。重点3:理解启动文件。有人会说,什么年代了
2021-02-19 16:53:25
822
原创 LeedCode刷题笔记-盛水最多的容器
LeedCode刷题笔记-盛水最多的容器题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a62vZ0sk-1613702606881)(https://i.loli.net/2021/
2021-02-19 10:43:49
138
原创 LeedCode刷题笔记-回文数
LeedCode刷题笔记-回文数题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读
2021-02-16 17:31:54
227
原创 LeedCode刷题笔记-从头到尾打印链表
LeedCode刷题笔记-从头到尾打印链表题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解题代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; *//**
2021-01-24 21:59:12
92
原创 LeedCode-刷题笔记-替换空格
LeedCode-刷题笔记-替换空格题目描述请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1:输入:s = "We are happy."输出:"We%20are%20happy." 限制:0 <= s 的长度 <= 10000代码实现char* replaceSpace(char* s){ if(s == NULL || strlen(s) == 0) { return s; } char
2021-01-23 22:33:31
106
原创 LeedCode刷题笔记-二维数组中的查找
LeedCode刷题笔记-二维数组中的查找题目描述在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21,
2021-01-22 22:29:25
277
原创 LeedCode刷题笔记-数组中重复的数字
LeedCode刷题笔记-数组中重复的数字题目描述找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000解题代码使用hash表的思想int findRepeatNumber(int* n
2021-01-21 22:46:43
101
原创 LeedCode刷题笔记:整数反转
LeedCode刷题笔记:整数反转题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0提示:-231 <= x <
2021-01-14 16:22:52
94
原创 LeedCode刷题笔记-Z字形变化
LeedCode刷题笔记-Z字形变化题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string
2021-01-12 16:15:00
114
原创 LeedCode刷题笔记-最长回文子串
LeedCode刷题笔记-最长回文子串题目描述给你一个字符串 s,找到 s 中最长的回文子串。ps:回文子串,就是一个字符串最常顺序书写和逆序书写,内容是一样的,如abba示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数
2021-01-11 15:07:52
80
原创 LeedCode刷题笔记-寻找两个正序数列中位数
LeedCode刷题笔记-寻找两个正序数列中位数题目描述给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并
2021-01-10 18:49:57
118
原创 LeedCode刷题笔记-最长子串问题
LeedCode刷题笔记-最长子串问题题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
2021-01-09 17:34:22
92
原创 LeetCode刷题笔记-两数相加
LeetCode刷题笔记两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9
2021-01-08 16:00:09
235
1
原创 设置自己的typora(图床和快捷键设置字体颜色)
设置自己的typora(图床和快捷键设置字体颜色)一、设置图床1、先设置最新版的typora如下,使其支持使用网络图床2、设置自己的阿里云oss,开通对应服务上面的几个信息可以从这些地方复制得到二、设置快捷键给字体加颜色可以参考这个文档:https://blog.youkuaiyun.com/qq_21480607/article/details/110237925总结就是 :安装AutoHotkey编写一个.ank后缀的文件,设置文本内容为```bash; Typora; 快
2021-01-06 17:02:57
707
2
原创 海康威视笔试题—用链表实现一个队列
海康威视笔试题—用链表实现一个队列记住队列的特点,先进先出就好了然后还有就是成程序设计要注意程序的一个健壮性,一些不好的编程习惯可能会让你的代码等级降低许多遇到问题:对函数的形参进行操作,导致没有正确删除队列代码如下:#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node * next;}node;//定义一个队列(保存的是队列的头指针和尾指
2020-09-08 17:48:30
249
原创 内存对齐的小妙招
内存对齐的小妙招1、为什么需要内存对齐?只是为了加快CPU对与内存的读取速度2、内存对齐在结构体中是如何计算结构体大小的?**起始位置按照0x00来计算,**首先qt,vs,windows是默认按照八字节对齐的,linux32位是四字节对齐,64位是8字节对齐。还可以用#pragma (n)手动设置对齐字节数,n只能等于,1,2,4,8,16除结构体第一个变量之外,其余所有变量的起始地址的偏移量必须是n的整数倍(你是默认对齐字节和变量本身大小,两个值之间的最小值)结构体整体大小必须是
2020-06-25 15:59:37
352
原创 内存对齐的小妙招
内存对齐的小妙招1、为什么需要内存对齐?只是为了加快CPU对与内存的读取速度2、内存对齐在结构体中是如何计算结构体大小的?**起始位置按照0x00来计算,**首先qt,vs,windows是默认按照八字节对齐的,linux32位是四字节对齐,64位是8字节对齐。还可以用#pragma (n)手动设置对齐字节数,n只能等于,1,2,4,8,16除结构体第一个变量之外,其余所有变量的起始地址的偏移量必须是n的整数倍(你是默认对齐字节和变量本身大小,两个值之间的最小值)结构体整体大小必须是
2020-06-25 13:12:49
262
原创 链式队列的实现
链式队列的实现队列先进先出,这是他的一个特征,我们还是老规矩用企业级链表和一个队列结垢体把他封装一下具体的思路就是:设置一个Node结构体来存储每个队列节点的地址,他就相当于一个钩子,把所有的链表节点连接起来struct Node{ struct Node *next;};设置一个队列节点,存储队列的基本信息,包括长度,上一个节点和下一个节点的地址typedef struct LinkQueue{ int len; struct Node tail;
2020-06-23 10:53:23
279
原创 数据结构-栈的C语言实现(1、顺序存储 2、链式存储)
数据结构-栈的C语言实现(1、顺序存储 2、链式存储)栈的顺序存储方式我们的思路就是使用一个结构体,来存储栈节点,里面有数据的地址和大小,然后再针对这个结构体做一些栈操作封装struct sstack{ void *data[MAX]; int size;}这里存储元素地址使用的是一个void 的数组,所以是叫顺序存储*具体实现代码如下:#include<stdio.h>#include<stdlib.h>#define MAX 1000st
2020-06-19 23:16:16
471
原创 学习笔记 STL实例练习
学习笔记 STL实例练习比赛规则:某市举行一场演讲比赛( speech_contest ),共有24个人参加。比赛共三轮,前两轮为淘汰赛,第三轮为决赛。比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛;第一轮分为4个小组,每组6个人。比如编号为: 100-123. 整体进行抽签(draw)后顺序演讲。当小组演讲完后,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。第二轮分为2个小组,每组6人。比赛完毕,淘汰组内排名最后的三个选手,然后继续下一个小组的比赛。第三轮只剩下1组6个
2020-06-14 22:59:26
599
原创 C++异常处理的一些基本知识
C++异常处理的一些基本知识#include <iostream>using namespace std;int Devide(int x, int y){ if (y == 0) { throw(y);//第一步:设定可能发生的异常条件,throw(int/类/数组都是可以的) } return x/y;}void test01(){ try { Devide(10, 0);//第二步:在thro
2020-06-10 22:53:05
140
原创 函数模板和模板类、类模板的简单介绍
函数模板和函数模板类模板1、函数重载首先它发肯定是为了解决问题的,什么问题呢?看下面代码Myadd(int a,int b){ return a+b;}MYadd(double a,double b){ return a+b;}这样不同的数据类型,函数体内进行的操作确是相同的,会增加我们的工作量和维护成本,这时候,c++就发明了函数模板,具体语法如下:template<class T1,class T2>//可以多写几个未知类型T看需要,注意:后面不能加;号,而且此
2020-06-08 22:45:12
174
原创 C++对于C语言的不同之处
C++对于C语言的不同之处这里就说一些我们常见到的,记住这些就没什么问题了不同之处如下:命名空间 namespce 的加入、struct类型加强、所有的C++函数和变量必须明确类型(以前c语言是编译器默类型)、新增bool类型、三目运算符功能增强、const关键字功能增强、枚举的功能增强新增之处:加入了引用、函数重载、函数默认参数和占位参数下面详细介绍不同之处:命名空间namespace的加入首先我们要弄清楚什么是命名空间,它相当于是定义了c++一套标准标识符,namespce是用来确定一个
2020-06-06 22:05:46
239
原创 更简洁的单链表逆序教程
努力写一个大家都能明白的单链表逆序这里记录一下,c语言笔试题常见的单链表逆序算法,看了很多别人的教程,觉得写的太过于复杂难懂。决定自写一个。首先我们要清楚,这里一般笔试要求都是不开辟另外的内存空间。我们有 header 第一个节点 第二个节点 第三个节点 。。。。 NULL我们设立三个指针,一个pre表示逆序后的后节点,cur表示当前节点,temp暂时存储cur(当前节点)的next节点。我们的思路:逆序初始化,pre为及一个节点,cur为第二个节点,temp为第三个节点相应指针
2020-06-04 17:56:52
237
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人