自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(169)
  • 收藏
  • 关注

原创 CubeMX RTOS Demo

CubeMX_RTOS_Demo 配置有clock,jlink下载,led,uart uart重定向,支持printf

2022-11-14 16:58:14 690 1

原创 RTOS: 堆和栈

RTOS 堆和栈

2022-11-14 13:04:59 442

原创 Leetcode 1281. 整数的各位积和之差

Leetcode 1281. 整数的各位积和之差题目描述给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。示例1:输入:n = 234输出:15 解释:各位数之积 = 2 * 3 * 4 = 24 各位数之和 = 2 + 3 + 4 = 9 结果 = 24 - 9 = 15示例2:输入:n = 4421输出:21解释: 各位数之积 = 4 * 4 * 2 * 1 = 32 各位数之和 = 4 + 4 + 2 + 1 = 11 结果 = 32

2020-11-01 21:03:31 1006

原创 Leetcode 1431. 拥有最多糖果的孩子

Leetcode 1431. 拥有最多糖果的孩子题目描述给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例1:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,t

2020-11-01 20:58:54 1145

原创 Leetcode 1486. 数组异或操作

Leetcode 1486. 数组异或操作题目描述给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例1:输入:n = 5, start = 0输出:8解释:数组 nums 为 [0, 2, 4, 6, 8],其中 (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8 。 "^" 为按位异或 XOR 运算符。示例

2020-11-01 20:57:08 974

原创 Leetcode 1603. 设计停车系统

Leetcode 1603. 设计停车系统题目描述请你给一个停车场设计一个停车系统。停车场总共有三种不同大小的车位:大,中和小,每种尺寸分别有固定数目的车位。请你实现 ParkingSystem 类:ParkingSystem(int big, int medium, int small) 初始化 ParkingSystem 类,三个参数分别对应每种停车位的数目。bool addCar(int carType) 检查是否有 carType 对应的停车位。 carType 有三种类型:大,中,小,

2020-11-01 20:53:02 463

原创 Leetcode LCP 06. 拿硬币

Leetcode LCP 06. 拿硬币题目描述给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。示例1:输入:n = 234输出:15 解释:各位数之积 = 2 * 3 * 4 = 24 各位数之和 = 2 + 3 + 4 = 9 结果 = 24 - 9 = 15示例2:输入:n = 4421输出:21解释: 各位数之积 = 4 * 4 * 2 * 1 = 32 各位数之和 = 4 + 4 + 2 + 1 = 11 结果 = 32 - 11

2020-11-01 20:41:27 323

原创 Windows映射网络驱动器

Windows映射网络驱动器网络驱动器,可以把你服务器的文件挂载到本地,方便对文件的操作;也就是说挂载成功以后,可以把服务器中,个人账号下的目录映射到本地,可以当成本地磁盘一样使用。映射的步骤:随便打开一个文件夹,选中地址栏,然后在地址栏中输入服务器的IP:\127.0.0.1(这里是举例,你需要输入自己的服务器IP),如下图:输入服务器地址以后,敲回车键选择你要映射的文件夹,右键点击这个文件夹,选择 【映射网络驱动器】在弹出的界面中,设置一个驱动号,如X:,点击完成这样打

2020-10-28 23:30:11 4526 1

原创 Leetcode 1512. 好数对的数目

Leetcode 1512. 好数对的数目题目描述给你一个整数数组 nums 。如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。返回好数对的数目。示例1:输入:nums = [1,2,3,1,1,3]输出:4解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始示例2:输入:nums = [1,1,1,1]输出:6解释:数组中的每组数字都是好数对示例3:

2020-10-27 09:15:11 337

原创 leetcode 1480.一维数组的动态和

leetcode 1480.一维数组的动态和题目描述给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4]。示例 2:输入:nums = [1,1,1,1,1]输出:[1,2,3,4,5]解释:动态和计算过程为 [1, 1+1, 1+1+

2020-10-25 19:55:33 361

原创 C语言知识-零零散散(四)

C语言知识-零零散散(四)手动实现strcmp函数strcmp函数是用于比较两个字符串的大小,如果相等返回0,如果第一个字符串比较大返回1,否则返回-1。int mystrcmp(const char* str1, const char* str2){ // 如果发现其中一个字符等于'\0',或者两个字符不相等,结束循环 while(*str1 && *str2 && (*str1 == *str2)){ str1++; // 地址自加,指向下一个

2020-07-19 16:36:31 752

原创 C语言知识-零零散散(三)

C语言知识-零零散散(三)while循环中的scanf函数首先给出下面的源码:#include<stdio.h>#include<stdlib.h>int main(){ char c = 0; int i=0; while (1) { scanf("%c", &c); i++; printf("i = %d\n", i); if(i == 5){ break; } } system("pause"); retur

2020-07-09 12:20:31 946

原创 C语言知识-零零散散(二)

C语言知识-零零散散(二)字符串处理函数gets和puts函数/*功能:从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。参数:char *str,str是一个指针变量名,也可以一个字符数组名。返回值:读入成功,返回和参数str相同的指针;失败,返回NULL指针。*/char *gets(char *str);/*功能:输出字符串。参数:s是要输出的字符串,可以字符指针变量名、字符数组名、或者是字符常量。返回值:成功,该函数返回一个非负值,如果发生错误则返回

2020-07-08 17:28:02 932

原创 C语言知识-零零散散(一)

C语言知识-零零散散(一)分类记忆C语言32个关键字分类记忆C语言编译过程预处理,主要处理源代码中的预处理指令,引入头文件,去除注释,处理所有的条件编译指令,宏替换,添加行号。经过预处理指令后生成一个.i文件;编译,编译过程所进行的是对预处理后的文件进行语法分析、词法分析、符号汇总,然后生成汇编代码。生成.s文件;汇编,将汇编文件转换成二进制文件,二进制文件就可以让机器来读取。生成.o文件;链接,将多个目标文件及所需要的库文件链接变成可执行文件原码、反码、补码在计算

2020-07-06 20:27:07 1319

原创 leetcode 98.验证二叉搜索树

leetcode 98.验证二叉搜索树题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \...

2020-02-10 21:12:07 1383

原创 leetcode 110.平衡二叉树

leetcode 110.平衡二叉树题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1...

2020-02-10 16:31:20 1237

原创 二叉树的前序、中序和后序遍历(递归和非递归的方法)

二叉树的前序、中序和后序遍历(递归和非递归的方法)二叉树的基础概念二叉树: 是每个节点最多只有两个分支的树结构。通常分支被称为”左子树“和”右子树“。二叉树的分支具有左右次序,不能随意颠倒。下图是一棵二叉树二叉树还有如下的性质:二叉树的第 iii 层至多有 2i−12^{i-1}2i−1 个节点深度为 kkk 的二叉树至多有 2k−12^k-12k−1 个节点一颗含有 nnn 个...

2020-02-06 20:09:21 13845 1

原创 leetcode 234.回文链表

leetcode 234.回文链表题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解题思路方法1: 借助额外的空间复杂度,使用栈的方法。具体方法是,先压榨,这样的话,栈顶的元素就是链表的尾...

2020-02-05 20:57:32 1367

原创 桶排序

桶排序算法思想桶排序是计数排序(计数排序实现点这里)的一种改进和推广,其核心思想是把给定的数据分布到有限数量的桶里,每个桶再分别排序,最后把各个桶里排好序的数字合并在一起。算法步骤:设置一定数量的桶(即定义一定数量的数组,存储数据)遍历待排序的数组,把每个数据放入对应的桶里对非空的桶进行排序把非空的排好序的桶合并起来举个例子:arr=[29,25,3,49,9,37,21,43...

2020-02-03 18:01:29 1602

原创 计数排序

计数排序算法思想计数排序是一种基于非比较的一种排序算法,其核心在于将输入的数据值转化为键存储在额外开辟的数组空间中,计数排序要求输入的数据必须有明确的范围。算法步骤:查找数组中的最大数和最小数根据最大数和最小数生额外的辅助数组(max-min+1)在辅助数组对应位置记录原数组每个数字出现的次数根据辅助数组调整原始数组举个简单的例子 arr = [2,0,-2,-1,3,1,3...

2020-02-03 15:09:14 1357

原创 堆排序

堆排序预备知识**满二叉树:**除最后一层结点均无任何子节点外,每一层的所有结点都有两个子结点的树。也就是每一层节点个数都是最大值的二叉树(每层kkk的节点个数=2k−12^{k-1}2k−1),也可以说除了叶子结点之外的每一个结点都有两个孩子,每一层(当然包含最后一层)都被完全填充。**完全二叉树:**如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右分布,则此二叉树被...

2020-02-03 10:34:26 2739

原创 快速排序

快速排序算法思想快速排序的基本思想:选择一个数字作为基准数字,比这个数字大的放在右边,小于等于这个数字的放在左边;然后就可以分成两个子序列,对于每个子序列进行同样的操作,直到整个序列是有序的。算法步骤:从序列中挑出一个数字作为基准(pivot);将给定的序列按照选定的基准分成两个子序列,小于等于基准的放在左侧,大于基准的放在右侧;对于每个子序列采用递归的操作,重复1~2步骤,直到子序...

2020-02-01 11:42:00 2927 2

原创 选择排序

选择排序算法思想选择排序是一种比较直观的排序算法,选择排序的工作原理是每次从待排序的数据中选择最小的数字放在当前位置,然后向前前进一个位置,把剩余数据的最小的数字放在现在的位置,依次类推,直到待排序的数据的数量为零。(升序的排列思想)算法步骤:设置当前位置的下标为最小的数字在待排序的数据中,选择最小的下标(与当前设置最小数字作比较)交换当前位置元素和最小下标的元素数据位置向前进一步...

2020-01-29 20:24:43 2325

原创 插入排序

插入排序算法思想插入排序是一个特别好理解的排序算法,这里举一个打牌的例子说明一个工作原理。在开始摸牌的时候,我们手里是没有扑克牌的,当摸第一个张牌的时候,我们先放在手里,当有第二张牌的时候,当它比我们手里的牌大,就放在右边,当比手里的牌小就放在左边,即升序排序(当然也可以降序);当第三张牌的时候,就选择合适的位置查进去,使得手里的牌是有序的。那么当整个扑克摸完的时候,我们手里的牌也是有序的。排...

2020-01-29 17:13:43 1787

原创 冒泡排序

冒泡排序算法思想冒泡排序是最简单的排序算法之一,在给定的序列中,依次的比较两个数字,如果顺序错误就交换两个数字的位置。然后重复步骤,直到整个给定的序列符合要求位置。算法步骤:比较相邻的两个数字,如果第一个比第二个数字大,那么交换两个数字的位置;否则,继续下一个位置的比较对每一对相邻的元素做同样的工作,遍历完整个序列以后,最后的数字一定是最大的数字针对所有的数字,重复以上步骤,除了最后...

2020-01-29 15:12:41 1751

原创 leetcode 106.从中序与后序遍历序列构造二叉树

leetcode 106.从中序与后序遍历序列构造二叉树题目描述根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路在...

2020-01-29 12:57:18 2087 1

原创 leetcode解题汇总(持续更新)

leetcode解题汇总(持续更新)笔者刷题是从19年秋招前后开始的,无论是硬件工程师、软件工程师、算法工程师、测试工程师等等,只要要求掌握编程语言的相关岗位,对算法和数据结构相关的知识的要求是必不可少。对于这些知识的掌握值通过课本上的知识是不够的,笔者亲身经历过19年秋招。流程大部分都是分三步:网申、笔试、面试(一般至少两轮、及以上)。你如果想通过笔试这一关,必须要刷题,通过了笔试以后,在面试...

2020-01-27 17:16:23 7442 3

原创 leetcode 105.从前序与中序遍历序列构造二叉树

leetcode 105.从前序与中序遍历序列构造二叉树题目描述根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7解题思路前序...

2020-01-21 22:45:46 1945

原创 归并排序

归并排序归并排序: 归并排序采用的是分治算法的思想,先把这个要排序的数组划分为两份,然后再把子数组再次二分,直到数组的大小为1;然后从低端开始向上合并,合并的过程对每一个子数组进行排序。可以通过下面的分解图观察归并算法的流程归并排序是一种稳定的排序算法,相对其他排序算法而言,是一种速度比较快的算法,时间复杂度为 O(n×log(n))O(n \times log(n))O(n×log(n))...

2020-01-21 20:04:09 4103 1

原创 leetcode 82. 删除排序链表中的重复元素 II

leetcode 82. 删除排序链表中的重复元素 II题目描述给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3解题思路这...

2020-01-20 16:31:38 1787

原创 leetcode 74.搜素二维矩阵

leetcode 74.搜素二维矩阵题目描述编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3...

2020-01-16 13:05:24 3006

原创 leetcode80.删除排序数组中的重复项 II

leetcode80.删除排序数组中的重复项 II题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1...

2020-01-16 11:53:20 1409

原创 leetcode 60.第k个排列

leetcode 60.第k个排列题目描述给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。...

2020-01-15 12:00:05 1535

原创 leetcode 86.分割链表

leetcode 86.分割链表题目描述给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5解题思路题目要求不改变...

2020-01-14 19:08:45 1480

原创 leetcode 29.两数相除

leetcode 29.两数相除题目描述给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: ...

2020-01-10 10:59:43 1491

原创 vim复制粘贴(从系统粘贴到vim中,以及从vim中粘贴到系统中)

vim与系统剪切板(将vim的内容复制到系统剪切板、或将系统剪切板内容复制到vim中)vim插件检查要完成vim中的内容复制到系统剪切板,需要vim支持 +clipboard,检查的方法(ubuntu16.04为例):打开terminal(ctl+alt+t)输入 vim --version | grep clipboard你会得到这样的结果查看clipboard和xterm_c...

2020-01-08 13:05:45 27133 6

原创 leetcode 75.颜色分类

leetcode 75.颜色分类题目描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]解题思路方法一:两趟遍...

2020-01-07 10:19:00 1403

原创 leetcode 6.Z字形变换

leetcode 6.Z字形变换题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你...

2020-01-05 13:21:02 1687 1

原创 leetcode 219.存在重复元素II

leetcode 219.存在重复元素II题目描述给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示...

2020-01-05 11:33:38 1464

原创 leetcode 205.同构字符串

leetcode 205.同构字符串题目描述给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = "egg", t = "add"输出: true示例 2:输入: s = "fo...

2020-01-05 11:01:43 1817

CubeMX-RTOS-Demo

CubeMX_RTOS_Demo 配置有clock,jlink下载,led,uart uart重定向,支持printf

2022-11-14

cubeMx heap-stck

cubeMx heap_stck

2022-11-14

空空如也

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

TA关注的人

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