自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 华为物联网设备上云10分钟实现

本小节的目的是:利用华为的物联网平台、设备端的开发驱动、在10分钟内实现设备的联网和数据的云端交互必读内容:一个简单的物联网系统,包含了设备端、平台端和应用端,其中设备端就是指本地的嵌入式测量系统,一般需要和传感器设备、驱动器设备连接获取环境的数据和执行平台端发送的命令。平台端是一个中间系统,连接设备端和应用端,向下和向上提供开发的API接口,进行数据的交互和处理。应用端这里初学者可以先不用管,应用端主要涉及针对平台的数据上行的处理,类似手机的APP或者网站的建设、或者其他的UI,主要的目的是让使用

2021-03-11 10:13:42 1603 2

原创 华为物联网平台文档(设备端开发)

平台对接信息设备和应用接入物联网平台前需要获取平台的接入地址信息。MQTT demo(python) 连接至物联网平台:项目目录:IoT_device_demo:使用MQTT协议的demo文件;message_sample.py:设备发送消息和接收平台消息的demo;command_sample.py:响应平台下发命令的demo;properties_sample.py:属性上报等的demo;IoT_device/client:对paho-mqtt进行了封装;IoT_client_c

2021-03-10 20:20:14 943

原创 常见5大算法思想(排序、查找、分类)

常用5大算法思維1. 动态规划简单介绍推荐博文-漫画动态规划动态规划中的三个重要的概念:最优子结构边界状态转移公式【例】爬楼梯问题,一次一步或者两步,F(1) = 1;F(2) = 2;F(n) = F(n-1) + F(n-2) (n>=3);1、F(n-1) 和 F(n-2)是F(n)的【最优子结构】2、F(1)和F(2)可以直接得到结果,是问题的【边界】3、F(n) = F(n-1)+F(n-2)是阶段和阶段之间的【状态转移方程】2. 分治算法3. 貪心算法贪心

2021-01-15 10:58:04 1002

原创 查找算法

写在前面:推荐博文详细介绍各种查找算法1、顺序查找(线性查找)从表的第一个(后者最后一个开始查找),逐个将记录的关键字和给定值比较,判断是否查找成功(迭代和递归的方式)int Sequential_Search(int *a,int n,int key){//a为数组名,n为数组长度,key为要查找的关键字 int i; for(i = 0;i < n;++i)...

2021-01-15 10:52:12 256

原创 快速乘和快速幂以及常用运算

【快速乘】推荐int quickMulti(int A, int B) { int ans = 0; for ( ; B; B >>= 1) { if (B & 1) { ans += A; } A <<= 1; } return ans;}(B&1) && (ans += A)A <<= 1B >>= 1【快速

2021-01-15 10:50:13 183

原创 DFS和BFS原理以及简单模板

【文章概要】【内容分析】DFS 算法思想:向深处搜索,直到找到解或者走不下去BFS算法简单模板

2021-01-15 10:48:51 617

原创 编程中的框架和库简介

1、框架到底是什么,干什么的框架就是一套规范。既然是规范,你使用这个框架就要遵守这个框架所规定的约束。在Java开发中,框架是用一套规则+一群jar包来表示的2、为什么:我们为什么要使用框架?(1)原因:就好比盖房子,有10个人一起合作盖,此时,框架就好比图纸。如果没有盖房子的图纸,那么每个人都有自己的想法,那么盖出的房子一定不是房主想要的。而有了图纸,就可以约束每个人要怎么盖我们的房子,砌...

2021-01-15 10:47:46 2538

原创 Linux 查找文件&定时删除文件

linux清空文件内容的三种方法1.使用vi/vim命令打开文件后,输入"%d"清空,后保存即可。但当文件内容较大时,处理较慢,命令如下:vim file_name:%d:wq2.使用cat命令情况,命令如下:cat /dev/null > file_name3.使用echo命令清空,此时会在文件中写入一个空行“\n",命令如下:echo “”>file_name推荐...

2021-01-15 10:44:25 157

原创 工作刷题思维知识点(图形和逻辑)

单个图像空间的结构关系,是否有对称、平移、镜像、叠加的关系图像的内容的种类关系图像中内容的直线、曲线数量关系图像中内容的阴影区域、空白区域的数量关系,面积部分大小关系图像中内容之间的是否相交、有交叉点的空间关系图像中内容之间的交叉点的数量关系(多方块的问题)图像中内容之间封闭区域的数量关系空间立体图和平面图像之间的转换和对应关系空间立体图对应的平面视图视角关系多方块之间的移动关...

2021-01-15 10:42:10 184

原创 Linux—man手册使用

提示:文章自取,开源精神,转载注明作者出处文章目录前言一、man如何使用二、man内容解释1.左上角数字2.整体结构总结前言提示:主要介绍Linux中常用的man手册的使用方法,尤其在开发Linux系统应用,针对每一个系统函数或者c标准库的api提示:以下是本篇文章正文内容一、man如何使用示例:在shell中输入 man+数字+命令/函数 即可以查到相关的命令和函数。若不加数字,那Linux man命令默认从数字较小的手册中寻找相关命令和函数。二、man内容解释1.左上角数字具体

2020-12-03 10:43:09 889

原创 gcc和gdb基础使用方法

gcc基础使用

2020-12-03 10:41:15 840

原创 C语言常见使用问题2

继上一篇C语言常用使用问题scanf和getchar混合使用读取时,需要注意的问题输入:1 2 3scanf读取到一个数后,getchar会继续读取后面的字符,因此两者读出的数是:scanf:123getchar:' ' ' ' '\n'如果用数组来保存储存的数据时,并且以getchar来判断一行的读取结束,需要将getchar放置在赋值的结尾for循环结构中,初始化条件只会执行一次n = 0;char ch;for(ch = getchar(); ch!='\n'; n++)

2020-10-24 15:29:54 224

原创 leetcode系列41-缺失的第一个正数

【题目概要】41. 缺失的第一个正数给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1【代码示例】// 第一步将所有不在【1,numsSize】中的数值进行numsSize+1的转化为新的数组// 存在范围内的就是将其转化为负数// 判断新数组第一个大于0的位置,如果全是负数,则就是numsSize+1int fir

2020-09-29 11:25:48 397

原创 C语言常见使用问题1

GNU是一个自由的操作系统GNU是“GNU is Not Unix”的递归缩写Linux 是 Linux is Not Unix的缩写GNU 包含3个协议条款,GPL:GNU通用公共许可证(GNU General Public License)LGPL:GNU较宽松公共许可证 (GNU Lesser General Public License), ) ,旧称 GNU Library G...

2020-08-19 09:08:45 514

原创 C语言-递归算法思想

写在前面继上篇博文里介绍的C语言常见基础算法,本篇在于算法的思路的整理和常见的算法编程实现。递归的含义和常见应用定义递归具体用法其实就是让你把一个问题分解成很多个类似的情况,虽然你要解决这个问题非常难,莫名其妙,要你想几年,但是把他一直递归分解,就变成很好理解的单种情况,而你整个问题又是跟这个单种情况类似,把整个问题通过递归调用一层一层分解到最低级简单的那种情况,就是你所需要理解的了。一...

2020-08-10 09:55:50 1513

原创 leetcode系列面试题 01.07. 旋转矩阵

【题目概要】面试题 01.07. 旋转矩阵给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。不占用额外内存空间能否做到?示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]【代码示例】void rotate(int** matrix, int matrixSize, i

2020-07-31 16:43:50 350

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

【题目概要】106. 从中序与后序遍历序列构造二叉树根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \ 9 20 / \ 15 7【代码示例】/** * Definition for a binary tree node. * struct TreeNode

2020-07-31 16:41:51 159

原创 leetcode系列142-环形链表 II

【题目概要】142. 环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:链表中有一个环,其尾部连接到第二个节点。【思路分析】设置快慢指

2020-07-31 16:40:59 160

原创 Linux中的进程(线程)和并发相关知识

并发与并行概念:并发,当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)并行,当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线...

2020-07-31 16:34:26 846

原创 Python进阶专题

【推荐专区】Python面试50题Python综合性面试大全1、Python中hash数据类型答:可变类型数据不可哈希,如列表、字典同值不同址,不同值同址不可变类型数据可哈希,数值、字母、字符串、数字、元组不可变同值同址,不同值不同址2、深拷贝和浅拷贝答:浅拷贝指的是仅仅拷贝的事变量内存区的地址,修改新变量的内容等于修改原来变量的内容;深拷贝相等于C语言中的变量赋值,重新申请一块...

2020-07-24 09:21:10 216

原创 leetcode系列54-螺旋矩阵

【题目概要】54. 螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]【代码示例】/** * Note: The returned array must be malloced, assume caller calls free(). */int* spiralOrder(

2020-07-23 11:42:24 188

原创 leetcode系列36-有效的数独

【题目概要】 1. 有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 '.' 表示。【思路分析】针对每一行,每一列,以及每一个3×3的九宫格进行有效性的验证,因此需要的3个9×9的数组来分别存储相应的结果每一个3×3的的九宫格怎么推理,

2020-07-23 10:29:50 211

原创 leetcode系列46-全排列

18、排列組合算法参考文献组合:void combine(int *a, int *b, int m, int n, int N){ for(int i=m; i>=n; i--) { b[n-1] = i-1; if(n>1) combine(a, b, i-1, n-1, N) else { for(int i=N-1; i>=0; i--) {打印结果出来} } }}...

2020-07-22 15:27:34 132

原创 leetcode系列3-无重复字符的最长子串(简单的滑动窗口法和回溯算法)

14、無重複字符的最長子串參考文獻【實例】字符串是:“fabcade”。1、当开始比较字符串的时候,begin指向了第一个字符f,now也指向了第一个字符f,当前只有一个字符,也就不需要比较是否重复。2、然后读取第二个字符,begin依然指向f,now指向了字符a,这个就需要比较一下a是否与之前的相同,没有相同的就继续读取。3、当now指向第二个a的时候,begin指向f,此时发现前面已经有了一个a了,(这里可以先记录一下当前字符串长度)所以begin就需要往后移动到a后面的b的位置,则当前的字符串

2020-07-22 15:13:00 216

原创 leetcode系列23-合并K个排序链表

【题目概要】23. 合并K个排序链表合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6【思路分析】...

2020-07-22 14:43:49 178

原创 leetcode系列4-寻找两个正序数组的中位数

【题目概要】4. 寻找两个正序数组的中位数给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5【思路分析】将多个排序数组

2020-07-22 13:15:12 177

原创 leetcode系列8-字符串转换整数 (atoi)

【题目概要】8. 字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下: 如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。 该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函

2020-07-22 13:08:07 156

原创 leetcode系列5-最长回文子串

【题目概要】5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"【思路分析】以每个节点最为中心点,向两边发散,循环比较值相等,分为odd和even两种情况...

2020-07-22 11:53:59 140

原创 leetcode系列43-字符串相乘

【题目概要】43. Multiply StringsGiven two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string.Example 1:Input: num1 = "2", num2 = "3"Output: "6"Example 2:Input: num1 = "123", num2

2020-07-22 11:53:11 144

原创 leetcode系列98-验证二叉搜索树

【题目概要】98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 输入: 2 / \ 1 3输出: true输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3

2020-07-22 11:46:26 88

原创 leetcode系列2-两数相加(链表)

【题目概要】2. 两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807【思路分析】以其中任一链表作为

2020-07-22 11:41:04 188

原创 leetcode系列34-在排序数组中查找元素的第一个和最后一个位置

【题目概要】34. 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]

2020-07-22 11:20:29 157

原创 leetcode系列61-旋转链表

【题目概要】61. 旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0

2020-07-22 11:00:00 226

原创 leetcode系列498-对角线遍历

【题目概要】498. 对角线遍历给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]【思路分析】先计算总共需要循环几次,row+col-1,然后如何分开每一次的方向,以及在遍历的过程中出现范围越界处理方式,共有几种越界方式?...

2020-07-22 10:54:32 202

原创 leetcode系列151-翻转字符串里的单词

【题目概要】151. 翻转字符串里的单词给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"【思路分析】高级语言中,可以先分开单词,以空格为界限,然后反转,加入空格等操作本文用两种方法尝试,C语言中用栈结构,从后往前遍历,遇见非空格入栈,遇见空格,出栈,需要注意的是几种特殊格式字符串的处理“” “ " " t" "fdgasg" 【代码示例1】char * rever

2020-07-22 10:39:58 217

原创 leetcode系列162-寻找峰值

【题目概要】【思路分析】一般二分法是对有序数组查找,本题堆二分查找进行一点修改。首先从数组 nums中找到中间的元素 mid。若该元素恰好位于降序序列或者一个局部下降坡度中(通过将 nums[i]与右侧比较判断),则说明峰值会在本元素的左边。于是,我们将搜索空间缩小为 mid的左边(包括其本身),并在左侧子数组上重复上述过程若该元素恰好位于升序序列或者一个局部上升坡度中(通过将 nums[i] 与右侧比较判断),则说明峰值会在本元素的右边。于是,我们将搜索空间缩小为 mid的右边,并在右侧子数组上重

2020-07-22 10:37:00 352

原创 leetcode系列234-回文链表

【题目概要】234. Palindrome Linked ListGiven a singly linked list, determine if it is a palindrome.Example 1:Input: 1->2Output: falseExample 2:Input: 1->2->2->1Output: trueFollow up:Could you do it in O(n) time and O(1) space?【思路分析】

2020-07-22 10:23:10 91

原创 leetcode系列116-填充每个节点的下一个右侧节点指针

【题目概要】116. 填充每个节点的下一个右侧节点指针给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next 指针都被设置为 NULL。【思路分析】通过head来连接

2020-07-22 09:50:00 159

原创 leetcode系列189-旋转数组

【题目概要】189. Rotate ArrayGiven an array, rotate the array to the right by k steps, where k is non-negative.Follow up: Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem. Could you do it in-place

2020-07-22 08:58:06 138

原创 leetcode系列62-不同路径

【题目概要】62. Unique PathsA robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (ma

2020-07-22 08:51:41 150

超全的vim插件配置一键式安装

超全的vim插件配置一键式安装

2023-06-14

空空如也

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

TA关注的人

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