自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个人的学习和碎碎念

GitHub地址:https://github.com/Small-Cube

  • 博客(226)
  • 资源 (3)
  • 收藏
  • 关注

原创 Python编程从入门到实践-----第9章 类

目录1、创建和使用类1、创建和使用类  以下图创建Dog类:

2020-04-28 18:47:45 445

原创 Python编程从入门到实践-----第8章 函数

目录1、定义函数1、定义函数  一个简单的示例:def greet_user(): """显示简单的问候语""" print("hello!")greet_user()  

2020-04-15 13:29:59 337

原创 Python编程从入门到实践-----第7章 用户输入和while循环

目录1、函数input()工作原理2、while循环1、函数input()工作原理  函数input()可以让程序暂停运行,等待用户输入一些文本,获取用户输入之后,python将其存储在一个变量之中,以方便使用。message = input("Tell me something and i will repeat it back you")print(message)  函数inpu...

2020-04-10 13:30:27 303

原创 Python编程从入门到实践-----第6章 字典

目录1、简单的字典2、使用字典1、简单的字典  字典类似C++里面的map,一般有一个key和对应的value。如下代码:# 下面代码会输出green和5alien_0 = {'color': 'green', 'points': 5}print(alien_0['color'])print(alien_0['points'])2、使用字典  字典是一系列键-值对,每一个键都与一...

2020-03-25 14:14:34 230

原创 Python编程从入门到实践-----第5章 if语句

目录1、简单示例2、条件测试1、简单示例cars = ["audi","bmw","subaru","toyota"]for car in cars: if car == "bmw": print(car.upper()) else: print(car.title())可以从中看到很多if语句的格式。2、条件测试  if语句核心都是一...

2020-03-23 14:11:55 271

原创 Python编程从入门到实践-----第4章 操作列表

目录1、遍历整个列表1、遍历整个列表  可以使用for循环来遍历列表。如下代码:  类似与C++11的

2020-03-21 15:22:32 518

原创 Python编程从入门到实践-----第3章 列表简介

目录1、列表是什么1.1 访问列表元素1.2 索引从0开始1.3 使用列表中的值2、修改、添加、删除元素2.1 修改元素2.2 添加元素2.2.1 在列表末尾添加元素2.2.2 在列表中插入元素2.3 从列表中删除元素2.3.1 使用del语句删除元素2.3.2 使用方法pop()删除元素2.3.3 弹出列表任意位置的元素2.3.4 根据值删除元素3、组织列表3.1 sort()对列表进行排序3....

2020-03-18 15:14:37 156

原创 Python编程从入门到实践-----第2章 变量和简单数据类型

目录1、学习之前的简单介绍2、hello,world!3、变量3.1 变量的命名和使用3.2 字符串3.2.1 字符串大小写修改3.2.2 合并(拼接)字符串3.2.3 使用制表符或换行符添加空白3.2.4 删除空白3.2 5 使用字符串避免语法错误4、数字4.1 整数和浮点数4.2 使用函数str()避免类型错误5、注释6、python之禅1、学习之前的简单介绍因为有C和C++基础,所以应该...

2020-03-18 13:41:18 195

原创 CSAPP-----虚拟内存

本节目录1、物理和虚拟寻址2、地址空间3、虚拟内存作为缓存的工具4、虚拟内存作为内存管理的工具5、虚拟内存作为内存保护的工具6、地址翻译7、案例研究8、内存映射9、动态内存分配10、垃圾收集11、C程序中常见的与内存有关的错误12、小结 本系列文章的观点和图片均来自《深入理解计算机系统第3版》仅作为学习使用 虚拟内存(VM...

2019-09-16 16:41:23 1399

原创 leetcode【数组和字符串】-----49. Group Anagrams(字谜分组)

1、题目描述 、2、分析 其实就是把含有相同字符并且出现次数相同的分为一个组,我们可以使用map来统计,遍历当前数组,对每一个字符串进行排序,之后放入map中,最后再从map中取出结果。map的两个参数一个是排序后映射的字符串,第二个参数则是这个映射的字符串在原字符串数组中的各个表现,也就是第二个参数是一个字符串数组。3、代码class Solut...

2019-09-03 20:05:25 144

原创 leetcode【152周赛】-----5174. 健身计划评估

1、题目描述2、分析 这道题其实是一道滑动窗口的应用的题,也就是维护一个大小为K的窗口,计算其中的值,然后再对值进行其他题目需要的计算。滑动窗口的技巧在一些求子串之类的题中很常见。3、代码class Solution {public: int dietPlanPerformance(vector<int>& calories, in...

2019-09-02 20:24:51 215

原创 leetcode【152周赛】-----5173. 质数排列

1、题目描述2、分析 很明显首先需要求n以内的质数,求质数有这样一个简单的方法,埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。这样从2开始,定义一个大小为n的数组,记录每一个数是否被标记,记录过的数则不用判断,这样很容易得到素数的个数...

2019-09-01 19:53:36 171

原创 洛谷-----P1219 八皇后

1、题目描述 题目链接:https://www.luogu.org/problem/P1219。2、分析 n后问题有四个限制条件,首先是行,这一行不能再有其他皇后,由于我们是使用行来做递归,在放置第i个皇后时,必然行的条件是满足的,那么就需要考虑列和对角线的条件,首先在递归程序里需要遍历所有的列,要在这些列里找到没有被标记过的点,如果找到,那么这个点就是当前...

2019-08-03 23:19:39 208

原创 leetcode【DFS】-----200. Number of Islands(岛屿数量)

1、题目描述2、分析 这道题求岛屿数量,岛屿是周围都是水,二维数组中1为岛屿,0为水,并且连着的岛屿算一个。求给定的数组中岛屿的数量。我们可以遍历,在找到一个岛屿的时候,计数加1,把它设为0,对其进行深搜,找其周围是否还存在岛屿,如果存在也将其设置为0,然后再找其余的1进行遍历。3、代码class Solution {public: int num...

2019-07-28 21:39:01 241

原创 leetcode【BFS】-----515. Find Largest Value in Each Tree Row(在每个树行中找最大值)

1、题目描述2、分析 这道题其实很简单,就是BFS,层序遍历,然后在这一层中找到最大的值保存下来,然后存入结果。3、代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig...

2019-07-25 22:33:11 132

原创 洛谷-----P1030 求先序排列

1、题目分析 题目链接:https://www.luogu.org/problemnew/show/P1030。其实这道题就是一道根据树的中序和后序遍历来求先序遍历。在leetcode之前做过,可以参考这里。代码稍微改改,加上输入输出即可。2、代码#include<iostream>#include<string>using namespac...

2019-07-24 21:50:18 195

原创 leetcode【BFS】-----129. Sum Root to Leaf Numbers(求根节点到叶子节点的和)

1、题目描述2、分析 这道题和124题有点像,只不过124更难一点,这道题只需要将所有到叶子节点的值计算出来再计算和。需要注意的是,必须是叶子节点,也就是说递归结束的条件是当前节点的左子树右子树都为空时才结束。之后递归分别计算左子树和右子树即可。3、代码/** * Definition for a binary tree node. * struct T...

2019-07-24 21:38:02 109

原创 leetcode【DFS】-----124. Binary Tree Maximum Path Sum(二叉树中的最大路径和)

1、题目描述2、分析 这道题求最大的路径和,从上面的两个例子能看出来这道题需要考虑的点,首先它是需要考虑左右子树的,两个并不分开,其次其实中间的处理部分是一个动态规划的应用,首先定义一个全局变量,取最小值,这个值用来记录最终结果。然后DFS搜索两个子树,并且比较子树的和与0的大小,取其大的,记录两个子树与此时根节点的和,然后再和res比较,取其中大的作为res。需要注...

2019-07-24 20:49:50 104

原创 leetcode【BFS】-----117. Populating Next Right Pointers in Each NodeII(填充每个节点的下一个节点)

1、题目描述2、分析 这道题和上一道题很像,都是BFS的应用。3、代码/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node* next; Node() {} Node(int _val...

2019-07-23 19:57:31 83

原创 leetcode【BFS】-----116. Populating Next Right Pointers in Each Node(填充每个节点的下一个节点)

1、题目描述2、分析 这道题是放在DFS里面的,但是很明显其实用BFS来做会更容易,和树的层序遍历的顺序一样,对每一个节点设置其next指针的位置即可。3、代码/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; ...

2019-07-21 21:00:05 95

原创 leetcode【DFS】-----114. Flatten Binary Tree to Linked List(二叉树展开为链表)

1、题目描述2、分析 首先分析,应该从最底下的节点来开始,所以就是递归应该是从右子树开始,之后再递归左子树。接下来就是需要处理的递归语句,需要处理的就是指针的指向,我们需要用一个变量来保存每次传进来的节点,先将其设为NULL,之后再更改其他指针。3、代码/** * Definition for a binary tree node. * struct Tree...

2019-07-14 17:17:36 110

原创 leetcode【DFS】-----113. Path Sum II(路径总和II)

1、题目描述 2、分析 和上一道题很像,只不过需要的是在过程中保存路径,这样就需要一个全局变量来保存最终的结果。一般在涉及到DFS时需要保存结果什么需要全局变量来保存,这样才会保证其在递归的过程中保持原来的值。3、代码/** * Definition for a binary tree node. * struct TreeNode { * ...

2019-07-14 16:21:46 111

原创 leetcode【DFS】-----112. Path Sum(路径总和)

1、题目描述2、分析 DFS边界条件是如果传进来的节点为空,说明前面没找到则返回false,如果左右子节点都为空并且传进来的sum-val等于0,则返回true,递归处理左右子节点就好。3、代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...

2019-07-13 19:48:21 149

原创 leetcode【DFS】-----111. Minimum Depth of Binary Tree(树的最小深度)

1、题目描述2、分析 求树的最小深度,递归求出左右子树,返回其中小的那个。需要注意的是这里的叶子节点指的是两个子节点都为空的节点,如果只是其中一个子节点为空那么需要返回的是另一个的高。3、代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...

2019-07-13 11:23:41 94

原创 leetcode【DFS】-----110. Balanced Binary Tree(平衡二叉树)

1、题目描述 2、分析 判断平衡二叉树只需要计算其左右子树的高然后相减只要其值小于1即可。只有左右子树都满足时才返回真。3、代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode...

2019-07-09 21:13:58 117

原创 leetcode【DFS】-----109. Convert Sorted List to Binary Search Tree(有序链表转为二叉树)

1、题目描述 2、分析 之前做过将一个有序数组转化为二叉树,这道题可以先将链表转化为数组,然后再将数组转化为二叉树,不过这样太过于复杂。因为数组的中点更容易找,但是这里可以通过快慢指针的方法来找到链表的中点,之后和前面构造二叉树的方法一样分为两部分,递归构造。3、代码/** * Definition for singly-linked list. *...

2019-07-09 21:02:55 137

原创 leetcode【DFS】-----106. Construct Binary Tree from Inorder and Postorder Traversal(构造二叉树)

1、题目描述 2、分析 和上一道题一样,思路都是找到根节点然后分两半进行递归。3、代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tr...

2019-07-09 20:46:14 100

原创 leetcode【DFS】-----105. Construct Binary Tree from Preorder and Inorder Traversal【构造二叉树】

1、题目描述 2、分析 从前序和中序中构造二叉树,构造二叉树最关键的是找到根节点,这个题和用后序和中序构造二叉树的思路上是一样的,首先找到根节点,然后将数组再分为两部分,递归的构造左右子树。3、代码/** * Definition for a binary tree node. * struct TreeNode { * int val; ...

2019-07-09 20:36:15 77

原创 leetcode【DFS】-----100. Same Tree(相同的树)

1、题目描述 2、分析 这道题算比较简单,判断两个树是否相同,只需要递归左右子树即可。在递归开始进行边界的一些判断。3、代码/**Definition for a binary tree node.struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNo...

2019-07-09 20:27:36 177

原创 leetcode【DFS】-----130. Surrounded Regions(被围绕的区域)

1、题目描述2、分析 题的意思是将被包围起来的O变为X。边界上O不算被包围。 本来以为只要把不是边界的O变为X就好,很明显不会那么简单,如果边界上的O相连的非边界的也是O那么这个O也不能变成X。这道题找被包围起来的O比较难找,那就找所有没有被包围起来的O,然后再找所有和边界上的O相邻的非边界O,先将这些O变成#,之后再将所有的O变为X,将所有的#变成O。...

2019-07-04 21:12:42 157

原创 剑指offer-----32、把数组排成最小的数

1、题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。2、分析 当然这个题可以用暴力求解,那么复杂度会比较高,在这里利用STL算法sort可以自己定义排序的规则,这样将两个数拼接之后的数进行比较,比较完之后按顺序加起来就好。...

2019-06-29 21:16:57 98

原创 剑指offer-----31、整数中出现1的次数

1、题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。2、分析 首先最简单的就是暴力求...

2019-06-23 21:24:55 115

原创 剑指offer-----30、连续子数组的最大和

1、题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,...

2019-06-21 18:25:35 80

原创 剑指offer-----29、最小的K个数

1、题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。2、分析 最简单容易想到的就是先排序,然后输出前K个数即可。但是这样明显时间复杂度比较高。也可以使用另外的方法,具体不再详述。3、代码class Solution {public: vector<in...

2019-06-20 20:59:50 101

原创 剑指offer-----28、数组中出现次数超过一半的数字

1、题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。2、分析 书上的方法说的复杂度是O(n),这里可以采用哈希表来遍历一遍并且将出现的次数统计,超过一半返回当前的数组值即可。3、代码...

2019-06-19 18:40:40 96

原创 剑指offer-----27、字符串的排列

1、题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。2、分析 把所有字符分为两部分,第一个字符和后面所有字符这两部分,然后把第一个和后面的每一个交换,如果一样则不交换。然后把第二个字符作为第一个字符,再和后面所有字符交换,这...

2019-06-17 18:11:15 141

原创 Unix高级环境编程(APUE)-----UNIX进程的环境

1、引言 这一章主要学些的是当执行程序时,main函数是如何被调用的,命令行参数是如何传递给执行程序的,典型的存储器分布是什么样式的,如何分配另外的存储空间,进程如何使用环境变量,进程终止的不同方式等另外还有longjmp和setjmp函数以及他们与栈的交互作用。2、main函数 C程序总是从main函数开始执行,main函数原型如下:int main...

2019-06-17 16:53:44 1555

原创 剑指offer-----26、二叉搜索树与双向链表

1、题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。2、分析 要将一个二叉搜索树变成一个有序的链表,那么应该想到的就是中序遍历,所有有关树的操作其实都会用到遍历这样的操作,而所谓的前中后几种遍历其实就是对当前节点的处理的程序放的位置不同而已。这道题牵扯到中序遍历,那么程序的结构就是左...

2019-06-16 18:52:42 105

原创 剑指offer-----25、复杂链表的复制

1、题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)2、分析 按照书上的办法,采用三个步骤,首先将复制后的节点接在原节点之后,这样链表长度变成原来的2倍,并且每一个节点后面跟着是一个值...

2019-06-14 10:44:56 205

原创 C++-----MySTL实现(6)-----list的实现

1、相关 在STL中,list是一个双向带环链表。list不能像vector那样使用普通指针作为迭代器,因为其节点在存储空间中不一定连续存在,list的迭代器必须有能力指向list的节点,这样才能正确的递增(指向下一个节点)、递减(指向上一个节点)、取值成员(取节点的数据值)存取等操作,由于STL list是一个双向链表,迭代器必须具备前移,后移的能力,所以list的迭代器类型是...

2019-06-11 20:59:33 417

STM32菜单管理

使用STM32F407实现的一个简单的菜单管理,用按键控制菜单的选择,可以有二级菜单。菜单用于在屏幕上显示需要的信息。

2019-03-31

基于RFID的签到系统设计

本科毕业设计,基于RFID设计的签到系统,其中包括了签到系统设计和充值消费,通过RC522模块和stm32实现。通过按键选择对应的模式,屏幕会实时显示卡片的金额或者姓名学号等。

2018-03-28

stm32 菜单管理代码

stm32 菜单管理框架,自己写的菜单管理框架,在stm32f407上实现,主要通过构建菜单结构体,组成菜单的链表,根据按键得到的键值转向相对应的菜单。

2018-03-28

空空如也

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

TA关注的人

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