自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RobotFramework中ride.py文件报错

运行ride.py文件时报错,错误信息为:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xac in position 76: illegal multibyte sequence解决方法:根据错误信息中的路径找到robotide\utils_init_.py文件,将144行中的return str(data.decode(enc))修改为return str(data.decode(enc,“ignore”))参考:https://blog

2021-04-12 16:56:26 149

原创 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。

题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:1.定义一个辅助vector容器temp;2.按照压入顺序每次尾插一个元素3.判断temp最后一个元素和弹出顺序中的元素是否相同,若相同,尾删temp中的元素;4.重复比较,直到

2020-07-31 18:54:21 274

原创 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解析:因为青蛙每次可以跳1,2,3,,,,n级;所以当青蛙在第n级台阶上时,它可能是从1,2,3,,,,,n-1级台阶上跳上来的,所以f(n)=f(1)+f(2)+…+f(n-1);当n=1时,f(1)=1;当n=2时,f(2)=2;当n=3时,f(3)=f(1)+f(2);…当n=n-1时,f(n-1)=f(1)+f(2)+…+f(n-2);当n=n时,f(n)=f(1)+f(2)+…+f(n-2)+f(n-1)=f(n-1)+f(n-1)=2f(n-1);代码: int jumpFl

2020-07-31 17:05:55 1271 1

原创 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。

题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”思路:(1)将字符串s2中的字符逐个存储在unordered_set中,(2)然后在unordered_set中查找s1中的元素,(3)若s1中的元素不在unordered_set中,将该元素插入到新的字符串result中。(4)返回字符串result。代码:#include <iostre

2020-07-31 15:24:53 2791

原创 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。

题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 ListNode* deleteDuplication(ListNode* pHead) { if(pHead==nullptr) return nullptr; ListNode* head=new Li

2020-07-29 16:01:38 805

原创 操作给定的二叉树,将其变换为源二叉树的镜像。

题目描述:原二叉树如图所示:镜像二叉树:观察两颗二叉树,二叉树镜像就是从上至下一次进行左右子树交换。 void Mirror(TreeNode *pRoot) { if(pRoot==nullptr) return; swap(pRoot->left, pRoot->right); Mirror(pRoot->left); Mirror(pRoot->right); }

2020-07-29 10:49:16 145

原创 输入两棵二叉树A,B,判断B是不是A的子结构。

思路: 递归(1)先确定其实位置(2)再比较左右子树是否相等 //比较左右子树是否相等 bool IsSameTree(TreeNode* root1,TreeNode* root2) { //root2==null说明整棵树都比较完了,说明所有点相同 if(root2==nullptr) return true; //root2非空,但root1为空,说明没有找到相同的点 if(root1=

2020-07-29 10:38:54 307

原创 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

方法1: 采用递归的思想(1)先确定合成的新链表的头节点(2) 再合并剩下的节点 ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(pHead1==nullptr) return pHead2; if(pHead2==nullptr) return pHead1; //判断节点大小,取小节点(要删除的节点)

2020-07-27 09:01:14 201

原创 输入一个链表,反转链表后,输出新链表的表头。

方法1: 定义三个指针,整体右移,边右移,边翻转,这样保证不会断链方法2: 定义一个新链表,采用头插的思想进行翻转方法3: 采用递归的思想:先反转当前节点后面的节点,然后将当前节点链接到反转部分的后面...

2020-07-27 08:56:04 700

原创 组队竞赛 c++编程

题目描述:链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue=1&page=1&onlyReference=false来源:牛客网牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平值等于该队伍队员中第二高水平值。例如:一个队伍三个队员的水平值

2020-07-20 21:01:11 1082

原创 调整数组顺序,使奇数在偶数的前面

题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路: 采用插入排序的思想从前往后将偶数后移,空出的位置中放入奇数。 void reOrderArray(vector<int> &array) { if (array.empty()) return; int k=0; for(in

2020-07-20 16:54:34 73

原创 旋转数组的最小数字

题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路: 采用二分法的思想当由于数组是非递减的,所以将数组前面旋转至数组尾部后,可以将旋转后的数组看成两部分,前后两部分均是非递减的,且前半部分整体大于等于后半部分。所以定义如下:left代表数组最左侧第一个元素的下标

2020-07-20 15:36:43 66

原创 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。

int firstUniqChar(string s) { int cout[256]={0}; int len =s.size(); //统计每个字符出现的次数 for (int i=0;i<len;i++) { cout[s[i]]+=1; } //遍历找到出现一次的字符,并返回索引。否则,返回-1 for(int i=0;i<len;i++)

2020-07-18 10:52:24 2210

原创 把字符串转为整数

题目描述: 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0思路: 从题意“整数”中可以看出,当字字符串中只包含‘+’、‘-’、以及0~9的数时,字符串才有效。 int StrToInt(string str) { int len=str.size(); if (len<=0) return 0; int i=0; int flag=0; //正负标

2020-07-18 10:13:11 71

原创 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。

题目描述: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。思路: 从两个字符串的末尾开始,分别取一位,并将字符类型转为数字类型,将转换后的两个数字相加记为cur,cur%10得到cur的个位数,并将其转为字符形式存入字符串res中,在对cur=cur/10得到是十位数(即进位),将其与字符串的倒数第二位相加,依次类推,直到两个字符串中都为空,然后将最后得到的字符串res逆序。string addStrings(string num1, string num2) {string

2020-07-17 16:01:11 2084

原创 全局变量和静态变量的区别

静态变量,全局变量存储在数据段。非静态局部变量存储在栈上。(1)全局变量 具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全局变量定义的源文件需要用extern关键字再次声明这个全局变量。(2)静态局部变量 具有局部作用域。它只被初始化一次,生命周期是全局,静态局部变量只对定义自己的函数体始终可见。(3)局部变量 也只有局部作用域,生命周期是局部。(4)静态全局变量 也具有全局作用域,作用于定义它的文件里,不能作用到其他文件里。...

2020-07-16 19:45:04 2960

原创 单例模式

1.什么是单例模式?一个类只能创建一个对象称单例模式,该模式可以保障系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。2. 分类:(1)饿汉模式: 程序启动时就会创建一个对象。优点:简单缺点:可能会导致进程启动缓慢,且当有多个单例对象实例时,启动顺序不确定。实现://饿汉模式class Singleton{public: static Singleton* GetInstance() { return &m_instance; }priv

2020-07-16 19:41:11 57

原创 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

思路: 两个数按位与,并左移两位,得到进位两个数按位异或,得到不带进位的两个数之和 int Add(int num1, int num2) { if(num1==0) return num2; if (num2==0) return num1; //两数相与左移一位是进位 int s1=(num1&num2)<<1; //两数

2020-07-16 10:13:53 123

原创 数组中重复的数字

题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思路: 使用将数组中的数字及出现次数放在map中,判断map中是否存在出现次数大1的数字。 bool duplicate(int numbers[], int length, int* duplication) {

2020-07-16 09:28:37 121

原创 根据输入的日期,计算是这一年的第几天:输入某年某月某日,判断这一天是这一年的第几天?

**题目描述:**输入某年某月某日,判断这一天是这一年的第几天?#include<iostream>using namespace std;//前几个月的天数累计(闰年)const int days[] = {0,31,60,91,121,152,182,213,244,274,305,335,366 };//每月的天数(闰年)const int MonthDay[]={0,31,29,31,30,31,30,31,31,30,31,30,31};int getoutDay(int

2020-07-15 20:58:19 671

原创 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

C++实现实现思路:参考类的属性,类在创建对象时会调用构造函数,所以在类中实现一个内部类,创建对象时会调用构造函数可实现累加和class Solution {public: //内部类 class Sum { public: Sum() { sum=sum+i; i++; } }; int Sum_Solution(int n) {

2020-07-15 19:31:31 195

原创 IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python

IndexError: invalid index of a 0-dim tensor. Use tensor.item() to convert a 0-dim tensor to a Python number错误分析错误原因:pytorch版本不同导致train_loss += loss.data[0]是是pytorch0.3.1版本代码,在0.5以上版本中就会报错解决办法train_loss += loss.data[0] 修改为train_loss += loss.item()...

2020-06-09 18:28:15 356

原创 pyTorch中模型加载

pyTorch框架中的torchvision在pyTorch框架中,torchvision是一个非常重要的包,其中包含三部分:torchvision.datasets、torchvision.models、torchvision.transforms。详细介绍参考官网和源码pyTorch中的预训练模型构建和下载以vgg16为例:预训练模型中默认输入RGB图像,h和w不低于224,图像的像...

2019-12-30 15:40:26 176

原创 Win10下安装tensorflow(gpu版)

Win10下安装tensorflow(gpu版)我安装的环境系统:win10系统python:3.5GPU:GeForce GTX1660TiCUDA:cuda_9.0.176_win10CUDNN:cudnn-9.0-windows10-x64-v71.安装anaconda我安装的时anaconda版本是4.2.0,安装包在官网下载,anaconda下载,安装包下载完成后安装,安...

2019-12-18 19:01:35 188

原创 TCP协议

TCP协议TCP:传输控制协议,是TCP/IP协议栈中传输层的典型协议。TCP协议的特点是面向连接,可靠传输,面向字节流。协议字段(1)16位源端口、16位目的端口:描述数据从哪个进程来,传送到哪个进程去(2)32位序号、32位确认序号:进行tcp协议栈中的包序管理(3)4位首部长度:长度单位是4个字节:20~15*4个字节(4)6位保留(5)6位标志位:URG/ACK/PSH/R...

2019-09-29 11:03:01 136

原创 TCP协议连接的建立和释放:三次握手和四次挥手

TCP协议TCP协议是TCP/IP协议栈中传输层的典型协议。TCP协议的特点是提供面向连接的、可靠的字节流服务。三次握手TCP协议中连接建立的三次握手过程:①客户端发送SYN,表明向服务器建立连接;②服务端返回ACK作为确认,同时返回SYN作为应答;③客户端发送ACK确认收到回复。建立连接过程中的状态说明:服务端等待客户端建立连接时处于LISTEN监听状态;客户端主动打开请...

2019-09-27 15:36:46 484

原创 UDP协议

传输层:提供端到端的数据传送服务。负责传送数据,确认数据已被传送并接收。传输层协议:UDP 、TCPUDP协议用户数据报协议,是TCP/IP协议栈中传输层的典型协议。UDP协议的特点是面向无连接,不可靠,面向数据报。网络通信编程UDP是面向无连接的通信,所以只需创建用于通信的套接字,然后在服务端绑定端口,就可以实现数据传输。服务端绑定地址信息后,在进行数据传输时,服务端会阻塞recvf...

2019-09-27 11:26:42 167

原创 c++中的虚函数及虚函数表

一、虚函数的定义有关键字virtual修饰的成员函数,为了实现多态。二、虚函数表1.虚函数表用来存放虚函数的地址,也称虚表。2.一个含有虚函数的类中至少有一个虚表。3.虚表指针:二级指针,虚函数指针的指针,存放在对象模型头部,32位系统中占4个字节,在64位系统中占8个字节。虚表指针中存放着虚表的首地址。可以通过对象实例化的地址得到虚函数表的地址。4.虚表与虚表指针的关系如下:三、...

2019-07-04 15:28:05 835

原创 c++多态

多态本文是在vs的32位系统运行的1.概念通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。2.虚函数虚函数:在函数前面加virtual虚函数重写/覆盖:子类中有一个与父类完全相同(函数名,返回值,参数都相同)的虚函数,则称子类的虚函数重写了父类的虚函数。3.多态的构成条件在继承关系中被调用的函数必须是虚函数,且完成了虚函数的重写。...

2019-07-04 10:14:26 73

原创 c++中的继承

继承1.概念:继承是面向对象的程序设计使代码复用的重要手段,在保持原有类特性的基础上进行拓展。2.继承的定义格式:class 派生类(或子类) : 继承方式(public,protected,private) 基类(或父类)class A{};//继承class B: public A{};3.继承中父类成员的访问方式父类private成员在子类中都是不可见,即父类的...

2019-06-27 09:38:39 139

原创 类和对象

c++是基于面向对象的,关注的是对象类的引入从语言中,结构体中只能定义变量,在c++中,结构体中不仅可以定义变量,也可以定义函数类的定义class 类名{ 由成员函数和成员变量组成};类的两种定义方式: 1. 声明和定义全部放在类体中 2.声明放在.h文件中,类的定义放在.cpp文件类的访问限定符及封装 1.访问限定符 C++实现封装的方式:用类将对象的属性与方法结...

2019-05-27 18:32:05 73

原创 c++入门基础

命名空间作用:对标识符的名称进行本地化,避免命名冲突或名字污染1.namespace关键字:定义命名空间一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中 namespace 命名空间名称 { 命名空间中的成员 } 1.命名空间中的内容既可以是变量,也可以定义函数 2.命名空间可以嵌套 3.同一个工程中允许存在多个相同名称的命名空间。2.命名空间的...

2019-05-26 16:22:21 113

原创 Anaconda添加opencv3库以及出现问题:ImportError: numpy.core.multiarray failed to import时的解决办法

我先安装了Anaconda,然后在Anaconda中配置了python3.6的环境。然后在网址添加链接描述中选择了与python版本对应的opencv版本的.whl文件。因为我的电脑是64位,python版本是3.6,所以我下载的是opencv_python-3.4.6+contrib-cp36-cp36m-win_amd64.whl文件,其中cp36指的是支持python3.6版本。步骤...

2019-04-26 18:06:57 1416

原创 快速排序

下面就快速排序的相关知识进行了总结快速排序算法基本步骤1.确定一个基准值(以最右边元素为基准值)下图中蓝色部分表示选取的基准值2.通过某种方式,遍历整个区间,每个元素和基准值进行比较,最终使基准值的左边全部是小于等于基准值的元素,基准值的右边为大于基准值的元素。3.对左右两个小区间重复上述步骤。1.基准值的选取方法:(1)随机法(2)取最左边或最右边元素(3)三数取中法: 三...

2019-04-24 11:33:37 155

原创 七种排序算法

简单的总结了一下七种排序算法的相关知识1.直接插入排序1.基本思想:将待排序区间按照数值的大小逐个插入到已排序区间,已排序的放在待排序的前面。2.时间复杂度: 最好O(n),最坏O(n2),平均O(n2)3.空间复杂度:O(1)4.稳定性:稳定2.希尔排序1.基本思想:把要排序的数据分成几个组,在每个组内进行直接接插入排序。重新分组,重复上述操作,直到分组数等于1,所有数据在同一组内...

2019-04-24 10:33:56 159

空空如也

空空如也

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

TA关注的人

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