自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 C++归并排序—使用vector实现,带输入输出。

#include<iostream>#include<vector>using namespace std;void Merge(vector<int>& arr, int left,int mid, int right){ int n1 = mid - left +1; int n2 = right -mid ; vector<int> arr1(n1); vector<int> arr2(n2)

2021-08-14 15:58:44 510

原创 剑指offer刷题【17】

5优化时间效率和空间效率时间效率 C++程序员要养成采用引用传递复杂类型参数的习惯。如果采用值传递的方式,则从形参到实参会产生一次复制操作。即使同一个算法用循环和递归两种思路实现的时间效率会大不一样。我们可以用递归的思路来分析问题,但写代码时可以用数组来保存中间结果基于循环实现。代码的时间效率有激情有耐心的去尝试新的思路,而不是遇到难题就退缩。面试题39 : 数组中出现次数超过一半的数字题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。基于Partition函数的时间复杂度

2021-03-10 14:42:14 110 1

原创 剑指offer刷题【16】

面试题32:从上到下打印二叉树题目1:不分行从上到下打印二叉树。从上到下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印。struct BinaryTreeNode{ int m_nVaule; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}这种遍历是按层遍历规律 每次打印一个节点时,如果该节点有子节点,则把该节点的子节点放到一个队列的末尾,数据容器是一个队列,如何实现队列。STL中有一个deque两端都可以进出的队

2021-03-06 09:52:19 115

原创 剑指offer刷题【15】

面试题29 顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。void PrintMatrixCloockwisely(int** numbers,int columns,int rows){ if(numbers==nullptr||columns<=0||rows<=0) return; int start = 0; while(columns>start x 2&& rows>start x 2) { PrintM

2021-03-05 14:12:11 80

原创 剑指offer刷题【14】

解决面试题的思路画图让抽象问题具体化画图 。图形能使抽象的问题具体化、形象化,借以辅助自己观察和思考。对于复杂问题,应聘者光用语言未必能说得清楚,这时候可以画出几幅图形,一边看图形,一边讲解,面试官就能轻松地理解应聘者的思路。二叉树的镜像请完成一个函数,输入一颗二叉树,二叉树输出它的镜像。二叉树节点定义struct ListNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;}

2021-03-01 21:41:41 63

原创 剑指offer刷题【13】

代码的鲁棒性鲁棒性是指程序能够判断输入是否合乎规范要求,并对不符合要求的输入予以合理的处理。提高代码鲁棒性的有效途径,进行防御性编程。预见在什么地方可能出现问题,并在这些可能出现的问题制定处理方式。面试题22:在链表中倒数第k个节点struct ListNode{ int m_nValue; ListNode* m_pNext;};遍历一遍 实现 找到倒数第k个节点,设置两个指针,第一个指针走k-1步停下,第二个指针从头指针开始遍历,ListNode* FindKthToTail(L

2021-03-01 13:25:01 96 3

原创 剑指offer刷题【12】

面试题18:删除链表的节点在O(1)时间内删除链表节点。给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间内删除该节点。struct ListNode{ int m_nValue; ListNode* m_pNext;}void DeleteNode(List** pListHead, ListNode* pToBeDeleted);常规的做法无疑是从链表的头节点开始,顺序遍历查找要删除的节点,并在链表中删除。在单向链表中,节点中没有指向抢一个节点的指针,所以只好从链表的

2021-02-27 23:07:16 72

原创 Linux操作系统【3】

文件搜索locate 只要路径中包含关键字就会被搜索出来 ,搜索很快。locate 123.txtlocate --helpsudo updatadblsfindlocate使用 cat和more命令查看文件内容搜索文件内容grep 从文件中抓取某段文本grep user 126.txtgrep -v 搜索不包含关键字的行 反向搜索grep ^’#’ /etc/services 表示以#开头grep ‘s’$ /etc/services 以s结尾回显 ech

2021-02-26 22:05:29 59

原创 剑指offer刷题【11】

高质量的代码代码的规范性清晰的书写,清晰的布局,合理的命名应聘者在写代码的时候,最好用完整的英文单词组合命名变量和函数,以便面试官能一眼读懂代码。代码的完整性代码是否完成了基本功能,输入边界能否能得到正确的输出,是否对各种不规范的非法输入做出了合理的错误处理。测试用例功能测试,边界测试,负面测试3种错误处理的方法函数用返回值告知调用者是否出错当错误发生时,设置一个全局变量。异常 当函数运行出错时,我们就抛出一个异常,根据不同的出错原因定义不同的异常类型。返回值 优点 和系统A

2021-02-26 14:19:42 66

原创 Linux操作系统【2】

文件夹的创建,删除文件的创建touch test.txt创建目录 make directorymkdir 文件夹和文件不能重名touch .text2.txt 创建隐藏文件rm 删除文件夹文件的剪切 复制 mkdir aamv test.txt aamkdir bbmv bb aa复制 cp 125.txt aacp -r aa/bb .find命令搜索find /home/siki/Desktop -size +1...

2021-02-25 10:40:34 76

原创 剑指offer刷题【10】

动态规划和贪婪算法动态规划是现在编程的热门话题如果面试题中是求一个问题的最优解,而且该问题能够分解成若干个种子问题,并且子问题之间还有重叠的更小的子问题,由于子问题在分解大问题的过程中重复出现,为了避免重复求解子问题,我们可以用从上往下的顺序先计算小问题的最优解并存储下来,在以此为基础求取大问题的最优解。面试题14:剪绳子给你一条长度为n的绳子,把绳子剪成m段,每段绳子的长度记为k[0],…,k[m].其可能的最大乘积。动态规划算法时间复杂度O(n^2),int maxProductAfte

2021-02-24 17:14:28 64

原创 剑指offer刷题【9】

回溯法用回溯法解决问题的所有选项可以形象地使用树状结构表示。在某一步有n个可能的选项,回溯法适合用递归实现代码,当我们到达某一个节点时,尝试所有可能的选项,并在满足条件的前提下递归抵达下一个节点。面试题12:矩阵中的路径设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符所有字符的路径。由于路径不能重复进入矩阵的格子,所以还需要定义和字符矩阵大小一样的布尔型矩阵,用来标识路径是否已经进入了每个格子。回溯算法bool hasPath(char* matrix,int rows,iint co

2021-02-24 16:17:59 66

原创 剑指offer刷题【8】

查找和排序查找有顺序查找,二分查找,哈希表查找,二叉排序树查找。如果面试题要求在排序数组中查找一个数字,或者统计某个数字出现的次数,那么我们可以尝试用二分查找算法。排序较为复杂,插入排序,冒泡排序,归并排序,快速排序实现快速排序算法的关键在于先在数组中选择一个数字,接下来把数组中的数字分为两部分,比选择小的数字移动到数组的左边,比选择的数字大的数字移动到数组的右边。int Partition(int data[],int length,int start,int end){ if(data =

2021-02-23 16:29:25 61

原创 剑指offer刷题【8】

算法和数据操作有很多算法都可以使用递归和循环两种不同的方式实现。排序和查找是面试时重点考察的算法。递归是一个函数的内部调用这个函数自身。而循环则是通过设置计算的初始值及终止条件,在一个范围内重复运算。递归由于是函数调用自身,而函数调用是有时间和空间消耗的:每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址及临时变量。通常应用动态规划解决问题时我们都是用递归的思路分析问题,但由于递归分解的子问题中存在大量的重复,因此我们总是自上而下的循环实现代码。斐波那契数列求斐波那契数列的第n项。

2021-02-22 15:11:20 47

原创 剑指offfer刷题【7】

面试题8:二叉树的下一个节点给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左右子节点的指针,还有一个指向父节点的指针。BinaryTreeNode* GetNext(BinaryTreeNode* pNode){ if(pNode == nullptr) return nullptr; BinaryTreeNode* pNext = nullptr; if(pNode->m_pRight !=nullptr){ BinaryTree

2021-02-22 14:02:10 132

原创 Linux操作系统【1】

虚拟机图形界面操作,命令行操作终端命令 SSH客户端连接远程服务器Linux常用命令大约二三十个,用时去查。目录相关命令pwd 回车执行命令 /home/siki print work directoryLinux没有盘符的概念,只有一个根目录。ls 显示 目录下有那些文件 list列出来当前命令下所有文件cd 进入文件夹里 区分大小写 切换我们要操作的路径。 可写多级路径/cd… 打开上一级路径 change directoryTab自动补全 方向键↑取得

2021-02-21 22:24:56 44

原创 剑指offer刷题【6】

树除根节点外每个节点只有一个父节点,根节点没有父节点;除叶节点外所有节点都有一个或多个子节点,叶节点没有子节点。父节点和子节点之间用指针链接。二叉树 遍历 递归和循环两种实现方式,每种递归实现会比循环实现简单的多。要对3种遍历的6种实现方式了如指掌宽度优先遍历:先访问树的第一层节点,再访问树的第二层节点 , 一直访问到最下面一层节点。在同一层节点中,以从左到右的顺序依次访问。二叉搜索时,左子节点总是小于或等于根节点,而右子节点总是大于或等于根节点。特例还有 堆和红黑树 红黑

2021-02-21 20:01:09 56

原创 剑指offer刷题【5】

链表链表是面试时被提及最频繁的数据结构,ta由指针把若干个节点连接成链状结构。链表的创建,插入节点,删除节点。链表是一种动态的数据结构,其需要对指针进行操作,需要具有较好的编程功底。结构灵活。内存分配不是一次性完成的,而是每添加一个节点分配一次内存。由于没有闲置的内存,链表的空间效率比数组高。单链表的节点定义如下struct ListNode{ int m_nValue; ListNode* m_pNext;};那么往该链表的末尾添加一个节点的代码如下void AddToTail

2021-02-20 23:12:18 61

原创 剑指offer刷题【4】

二维数组中的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序。输入一个二维数组,和一个整数,判断数组中是否存在整数。查找 解决一个复杂的问题,分析一个简单具体的例子bool Find(int* matrix, int rows, int columns, int number){ bool found = false; if(matrix != nullptr&& rows>0 && columns>0) {

2021-02-19 23:50:41 51

原创 剑指offer刷题【3】

数据结构数组,字符串,链表,树,栈,队列动态数据 C++ STL中的vector(STL的vector每次扩容时,新的容量都是前一次的两倍)当我们声明一个数组的时候,其数组的名字也是一个指针,该指针指向数组的第一个元素。在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化成为同类型的指针。面试题3 数组中重复的数组在一个长度为n的数组里的所有数字都在0~n-1的范围内。数字中某些数字是重复的,但不知道有几个重复的数字 ,也不知道重复几次,找出任意一个重复的数字。排序或者利用哈希表重

2021-02-17 22:20:49 44

原创 剑指offer刷题【2】

2.C# 实现Singleton模式基于Windows系统开发的公司要求 C++ 和C#之间的区别设计一个类,我们只能生成该类的一个实例。只能生成一个实例的类是实现了Singleton单例模式的类型。由于设计模式在面向对象程序设计中起着举足轻重的作用,在面试过程中很多公司都喜欢问一些于设计模式相关的问题。在常用的模式中,Singleton是唯一一个能够用短短几十行代码完整实现的模式。不好的解法一:只适用于单线程环境public sealed class Singleton1(){ priv

2021-02-17 17:31:19 51

原创 剑指offer刷题【1】

1.赋值运算符函数注意事项:1) 是否把返回值的类型声明为该类型的引用,并在函数结束前返回实例自身的引用(*this),只有返回一个引用,才可以允许连续赋值。2)是否把传入参数的类型声明为常量引用。如果传入的参数不是引用而是实例,那么从形参到实参会调用一次复制构造函数。把参数声明为引用可以避免这样的无所谓消耗,提高代码效率。3)是否释放自身的内存。如果我们忘记再分配新的内存之前释放自身已有的空间,则程序将出现内存泄漏。4)判断传入的参数和当前的实例(this)是不是同一个实例。如果是则不进行赋值操作,直接

2021-02-16 23:12:57 82

原创 【每日刷题4】

LCP 18. 早餐组合解决方案: 排序加二分假设len(staple) = m,len(drinks) = n根据数组规模可知,暴力法的时间复杂度为O(mn),会超时。如果数组是有序的就可以用二分法来优化了。于是自然想到先对数组排序。再多想一步,是不是只需要对其中一个数组排序就可以了呢?如果可以的话要对哪个排序?只要有一个数组有序,我们遍历另一个无序的数组的每个元素n,在有序的数组中查找第一个比x-n大的数组下标,就是找到了有序数组中有多少个数符合要求。二分查找的时候要注意边界条件的判断以及极

2020-09-18 16:42:01 141

原创 爬虫 --豆瓣电影TOP250

#-*- codeing = utf-8 -*-#@Time : 2020/6/24 9:44#@Author : Mr.zhou#@File : douban.py#@Software: PyCharmfrom bs4 import BeautifulSoup # 网页解析,获取数据import re # 正则表达式,进行文字匹配import urllib.request, urllib.error # 制定URL,获取网页数据import xlwt # 进行excel操作i

2020-08-21 20:10:29 313

原创 【每日刷题3】

双指针法class Solution {public: bool isSubsequence(string s, string t) { int lenS = s.size(); int lenT = t.size(); if(lenS == 0){ return true; } if(lenT == 0){ return false; } .

2020-07-27 19:04:25 100

原创 【每日刷题2】两个数组的交集,

方法一 哈希表 (数据结构和算法需要在补充,很多知识点还没有了解)

2020-07-16 17:12:03 108

原创 数字图像处理基础知识点

数字图像处理1.绪论1.1可见光成像和不可见光成像单波段、多波段、超波段电磁波按波长递增频率递减的顺序:伽马射线,X射线,紫外线,可见光,红外线,微波和无线电波。紫外光400nm~~红外光780nm图像处理的概念:模拟图像处理 和 数字图像处理1.2图像变换 :傅里叶变换图像增强:增强图像的有用信息,消弱噪声的干扰。图像的恢复与重建:图像编码:数字图像处理系统:硬件和软件...

2020-07-12 22:09:06 852

原创 Essencial C++(2)

3.泛型编程风格3.1指针的算术运算template <typename elemType>elemType* find(const vector<elemType>&vec,const elemType &value){ for(int ix=0;ix<vec.size();++ix) if(vec[ix]==value) ret...

2020-07-12 22:08:34 132

原创 算法设计与分析

算法设计与分析贪心算法:单位权值价值大的优先。算法设计:①问题建模,②选择什么算法?如何描述这个方法?,③这个方法是否对所有实例都得到最优解?如何证明?④如果不是,能否找到反例?例2:投资问题蛮力算法(穷举法),算法效率C(m+n-1,m)= (m+n-1)!/m!(n-1)!问题求解的关键建模:对输入参数和解给出形式化或半形式化的描述设计算法:采用什么算法设计技术 ,正确性—是否对...

2020-07-12 22:07:41 503

原创 Python入门基础

变量在使用变量之前,需要对其赋值。变量名可以包括字母、数字、下划线,但变量名不能以数字开头。字母可以是大写或小写,但大小写是不同的。“=”是赋值的意思,左边明自,右边值,不可写反。变量名要专业一点哦--------字符串中需要出现单引号或者双引号怎么办?两种方法1.使用转义字符 ( \ )对字符串中的引号进行转义:‘Les’s go !’2.原始字符串>>>...

2020-07-12 22:07:04 76

原创 C++基础之构造函数与析构函数

构造函数派生类的构造函数格式为:派生类构造函数名(总参数列表):基类构造函数名(参数列表){派生类中新增数据成员初始化语句;}#include<iostream>using namespace std;class A{ public: A(int i) { x=i; cout&...

2020-07-12 22:05:21 85

原创 【每日刷题1】LeetCode 两数之和

1.暴力算法算法时间复杂度较高,O(n^2)class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { for(int i = 0; i<nums.size()-1; i++) for(int j = i+1; j<nums.size();j++) { if (nu

2020-07-12 22:01:46 118

原创 基于Arduinuo单片机的循迹小车

基于Arduinuo单片机的循迹小车源程序://下面一块代码修改好接口号 //************************************************************** //速度输出接口 #define LF 5 //左轮电机PWM控制,高电平左轮前进 #define LB 6 //左轮...

2019-12-03 13:00:31 304

python开发视频密码链接说明.txt

详细讲解了python开发细节,Django 开发

2021-06-10

多智能体编队控制轨迹跟踪

多智能体编队控制 一致性控制,人工势场法,领航跟随法

2020-12-25

机器人人工势场法路径规划

采用人工势场方法进行路径规划,编队控制,可以得到良好效果

2020-12-23

多智能体编队控制代码

分布式一致性多智能体编队控制,协同编队任务涉及到多种技术的综合使用,是一项十分复杂的研究内容。每个编队成员必须具备控制器、传感器、与推进系统,编队整体需具备多传感器信息融合、机间通信等能力。

2020-10-12

空空如也

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

TA关注的人

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