自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 功能测试需求知识

文本框长度要求输入内容限制密码框长度要求不允许明文显示禁止复制粘贴输入内容限制两次密码要一致单选按钮框架标题/提示文本不缺失且正确各个选项正确执行同一功能的多个单选按钮只能选择一个要有默认选中项一般不能取消选中存入后台的数据正确组合列表框/下拉框通常单选,条目内容要正确(没有多余/错放项、缺少项)横向显示要完整条目功能要正确实现组合列表框中可能允许输入数据数码框能使用上下箭头控制数字变动数字有范围限制数字自动循环或者到达边界值时停止可以直接

2021-09-01 15:53:23 141

原创 数组与链表

参考连接数组与链表是不同的两种数据结构。数组在内存中,数组是一块连续的空间;当创建一个数组时,会申请一定空间的内存,会存在内存浪费的情况。但当内存不够用时,又需要重新分配内存空间。数据的内存地址是连续的,所以随机读取效率高,但是,插入和删除的效率低,因为,每插入一个元素时,要讲插入元素位置后面的所有元素都进行后移一位,删除也同理,删除的元素后面的元素都要向前移动一位。优点随机访问性强查找速度快缺点插入和删除效率低内存空间利用率低链表链表是不连续的,每个数据都保存了下一个数据的

2021-08-27 11:30:51 129

原创 python四种数据类型

列表(list)列表是有序的集合,可变的,内存地址空间是有序的,通过索引随机读取,查询快,但是列表的读取会随着列表的长度增大而增大,插入和删除效率低,并且内存空间利用率低,分配一定的内存,如果不够用,需要重新创建更大的内存空间。元组(tuple)元组与列表类似,都是有序的集合,也可以通过索引进行读取,但是元组是不可变的,一旦分配好内存和元素后,元组的空间和元组中的元素就是不能改变的。字典(dict)字典是无序的,通过key-value的形式存储,所以,内存占用大,读取效率高,通过key进行读取,读

2021-08-27 10:49:35 258

原创 软件缺陷(Bug)

bug严重级别划分缺陷级别描述严重缺陷(Critical)不能执行正常工作功能或重要功能。使系统奔溃或资源严重不足。(例:由于程序引起的死机,非法退出;死循环;数据库发生死锁;错误操作导致的程序中断;严重的计算错误;与数据库连接错误;数据通信错误)较严重缺陷(Major)严重地影响系统要求或基本功能的实现,且没有办法更正。(例:功能不符;程序接口错误;数据流错误;轻微数据计算错误)一般缺陷(Average Serverity)严重地影响系统要求或基本功能的实现,但存在

2021-07-07 15:16:52 180

原创 软件测试理论

软件测试:验证软件的功能是否满足用户的需求。软件测试目的:为了发现程序中存在的代码或业务逻辑的错误为了检验产品是否满足用户需求为了提高用户的体验软件测试分类按测试阶段划分单元测试:粒度最小,按照一个单元,一个模块,一个功能去测试,一般由开发小组采用白盒方式进行测试,主要测试单元是否符合“设计”;集成测试:将多个模块合在一起测试,介于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方式进行测试,既要验证设计,又要验证需求(多个单元组成,单元与单元之间的调用与被调用,

2021-07-06 15:51:04 245 1

原创 MySQL索引

索引的基本概述索引的分类主键索引:设定为主键后数据库会自动建立索引,主键不能为空单值索引:除主键外的其他某一列设置的索引复合索引:一个索引包含多个列唯一索引:索引列的值唯一,允许为空,只能存在一个nullshow index from 表名; --查看表中索引索引底层原理解析—B+树B+Tree是在B-Tree(B树)结构基础上的一种优化,使其更很适合实现外存储的索引结构,InnoDB存储引擎就是使用B+Tree实现其索引结构。B+Tree与B-Tree(B树)最大

2021-07-05 16:03:53 329 2

原创 Linux网络命令与系统命令

Linux网络命令curl利用URL规则在命令行下工作的文件传输工具curl www.baidu.com -- 会将网站页面的所有内容抓取下来telnet用于登录远程主机(不太安全),一般用sshtelnet 远程主机地址例: telnet 127.0.01 -- 登录本地主机netstat显示网络状态信息Linux系统命令ping测试网络连通ping www.baidu.comman查看帮助man pingkill杀死进程kill 进程

2021-07-04 23:19:40 75

原创 常用Linux命令的基本使用

Windows系统中有盘符,而Linux系统不存在盘符一说,只有根目录及其子目。常用Linux命令的基本使用序号命令英文作用01lslist查看当前文件夹下的内容02pwdprint work directory查看当前所在文件夹03cd[目录名]change directory切换文件夹04touch[文件名]touch如果文件不存在,新建文件05mkdir[目录名]make directory创建目录06rm[文件

2021-07-04 22:41:28 203 2

原创 子查询

1.子查询的介绍在一个select语句中,嵌入另外一个select语句,那么被嵌入的select语句称之为子查询语句,外部那个select语句称为主查询。主查询与子查询的关系:子查询是嵌入到主查询中子查询是辅助主查询的,要么充当条件,要么充当数据源子查询是可以独立存在额语句,是一条完整的select语句2.子查询的使用例1:查询大于平均年龄的学生:select * from students where age > (select avg(age) from students);

2021-07-03 10:38:34 141

原创 连接查询

连接查询介绍连接查询可以实现多个表的查询,但查询的字段数据来自不同的表就可以使用连接查询来完成。连接查询可以分为:内连接查询左连接查询右连接查询自连接查询1.连接查询—内连接查询两个表中符合条件的共有记录内连接查询效果图为:内连接查询的语法格式:select 字段 from 表1 inner join 表2 on 表1.字段1 = 表2.字段2;说明:inner join 就是内连接查询关键字on就是连接查询条件例:使用内连接查询学生表与班级表:select *

2021-07-03 10:14:00 1047 1

原创 条件查询-分组查询

1.分组查询介绍分组查询就是将查询结果按照指定字段进行分组,字段中数据相等的分为一组。分组查询基本语法格式如下:GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP]说明:列名:是指按照指定字段的值进行分组HAVING条件表达式:用来过滤分组后的数据WITH ROLLUP:在所有记录的最后加上一条记录,显示select查询时聚合函数的统计和计算结果2. group by的使用-- 查询性别的种类select distinct gender from stu

2021-07-02 18:24:14 1339 1

原创 条件查询-聚合函数

1.聚合函数的介绍聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据。常用的聚合函数:count(col):表示求指定列的总行数max(col):表示求指定列的最大值min(col):表示求指定列的最小值sum(col):表示求指定列的和avg(col):表示求指定列的平均值2.求总行数查询学生的个数select count(id) from students;select count(*) from student

2021-07-02 17:44:41 620 1

原创 分页查询

使用limit关键字实现分页查询1.分页查询介绍当我们在京东购物时,浏览商品列表的时候,由于数据特别多,一页显示不完,一页一页的进行展示,这就是分页查询2.分页查询语法select * from 表名 limit start,count说明:limit是分页查询关键字start表示开始行索引,默认是0count表示查询条数举例:-- 查询前3行男生的信息select * from students where gender = '男' limit 0,3;或简写为:selec

2021-07-02 17:11:53 111

原创 数据库查询语句中的排序

1.排序查询语法排序查询语法:select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]语法说明:先按照列1进行排序,如果列1的值相同,则按照列2排序,以此类推asc从小到大排序,即升序desc从大到小排序,即降序默认按照从小到大排序(即asc关键字)举例:-- 查询未删除男生信息,按学号降序select * from students where is_del = 0 and gender = '男' order by id

2021-07-02 16:52:58 6261

原创 where条件查询语句

1. where条件查询介绍使用where条件查询可以对表中的数据进行筛选,条件成立的记录会出现在结果集中。where语句支持的运算符:比较运算符逻辑运算符模糊查询范围查询空判断where条件查询语法格式如下:select * from 表名 where 条件;例:select * from students where id = 1;2.比较运算符查询等于:=大于:>大于等于:>=小于:<小于等于:<=不等于:!=或<>

2021-07-02 16:32:44 4246 1

原创 as和distinct关键字

能够去除重复数据行的关键字1. as关键字在使用SQL语句显示结果的时候,往往在屏幕显示的字段名并不具备良好的可读性,此时可以使用as给字段起个别名1.1 使用as给字段起别名select id as 序号, name as 名字, gender as性别 from students;1.2 可以通过as给表起别名-- 如果是单表查询,可以省略表名select id, name, gender from students;-- 表名.字段名select students.id, stu

2021-07-02 15:16:50 128

原创 数据库和表的操作

1. 登入与登出数据库1. 1 进入mysql安装bin目录下d:cd mysql\mysql-5.7.20-winx64\bin1.2 启动数据库服务net start mysql1.3 停止数据库服务net stop mysql1.4 登录数据库mysql -uroot -p注:登录到数据库中,数据库语句后都要加“;”结尾1.5 显示当前时间select now();1.6 退出数据库exit/quit/ctrl+d2. 数据库操作的SQL语句2.1 查看

2021-07-02 14:49:38 78

原创 快速排序算法

算法思想快速排序也是用的分治递归的思想,但是相比归并不需要额外的空间复杂度,空间复杂度为O(1)算法实现

2021-06-20 15:51:12 68

原创 归并排序算法

算法思想参考:归并排序归并排序是用到了分治的思想,分治的思想是将一个大问题拆分成很多的小问题,然后再将已经处理完成的小问题合并成整个的大问题。在这个过程中,大问题就得到了解决。在大数据方面的 Map-Reduce 就是这样的分治的思想。归并排序首先将数组等分,然后排序等分后的数组,最后再将排好序的两个数组合并成一个排好序的数组。归并排序的时间复杂度是O(n log n)算法实现''' 归并排序 ''' def mergeSort(self, array):

2021-06-19 22:26:28 59 1

原创 希尔排序算法

算法思想参考:希尔排序希尔排序是一种高效的排序方式,它是基于插入排序的一种排序算法。它相比插入排序能够有效的避免大量的移动操作。这种算法使用插入排序,只是比较的时候使用的是很远的数据进行比较,然后将它们排序。这个比较远的距离是通过下面的计算式子得出的:h = h * 3 + 1这种算法的时间复杂度是 O(n^2) ~ O(n*log2n).算法实现 ''' 希尔排序 ''' def shellSort(self, array): n = len(a

2021-06-19 21:48:07 58

原创 几种排序(冒泡、插入、选择)

参考:排序算法之冒泡, 插入, 选择冒泡排序算法思想这个排序算法的核心之处在于每个相邻的元素都进行比较,如果不是按顺序的形式,就交换彼此。这个算法不适用于大数据量的排序,因为它的平均时间复杂度和最差时间复杂度都是O(n^2)。第一趟冒泡的结果,将没排好序数组中的最大数通过冒泡的方式移动到了最后位置:剩余冒泡遍历后的结果算法实现# coding:utf-8'''冒泡排序'''def bubbleSort(array): n = len(array) # 循环n趟,

2021-06-19 21:10:39 183

原创 连续子数组的最大值

题目描述输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为 O(n).输入输出输入:[1,-2,3,10,-4,7,2,-5]返回值:18说明:输入的数组为{1,-2,3,10,—4,7,2,一5},和最大的子数组为{3,10,一4,7,2},因此输出为该子数组的和 18。解题思路循环遍历数组中的数字,连续数相加的和如果比当前遍历的数还小,则从当前遍历的数重新开始加和计算,否则,之前数字的和继续加上当前遍历的数字;

2021-06-19 15:48:46 130

原创 序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树,不对序列化之后的字符串进行约束,但要求能够根据序列化之后的字符串重新构造出一棵与原二叉树相同的树。二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树等遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到的序列化字

2021-06-19 10:14:26 185

原创 按之字形打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。输入输出输入:{8,6,10,5,7,9,11}返回值:[[8],[10,6],[5,7,9,11]]解题思路考虑边界条件,树为空时,返回空数组定义两个栈,一个用来存储打印顺序是从左往右打印的层的节点,这个栈中的元素入栈顺序时从右往左,与打印顺序相反,这样出栈的时候就是打印顺序从左往右;另一个栈用来存储打印顺序是从右往左打印的层的节点,这个

2021-06-18 17:31:59 51

原创 对称的二叉树

题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。输入输出示例示例1输入:{8,6,6,5,7,7,5}返回值:true示例2输入:{8,6,9,5,7,7,5}返回值:false解题思路二叉树的每个节点的左右子树都是一个镜像文件,即此二叉树就是对称二叉树(只有根节点或者树为空的情况也都为对称二叉树)。定义判断是否是镜像的函数,传入参数为左子树和右子树,用于判断每次左右子树是否是镜像的:此函数中,如果左节点和

2021-06-18 16:38:31 77

原创 二叉树的下一个节点

题目描述给定一个二叉树其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的next指针。下图为一棵有9个节点的二叉树。树中从父节点指向子节点的指针用实线表示,从子节点指向父节点的用虚线表示示例:输入:{8,6,10,5,7,9,11},8返回:9解析:这个组装传入的子树根节点,其实就是整颗树,中序遍历{5,6,7,8,9,10,11},根节点8的下一个节点就是9,应该返回{9,10,11},后台只打印子树的下一个节点,所以只会打印9,如

2021-06-18 12:12:07 75

原创 数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。输入输出示例输入:[5,2,3,4,1,6,7,0,8]返回值:"5.00 3.50 3.00 3.50 3.00 3.50 4.00 3.50 4.00 "说明:数据流里面不断吐出的是5,2,3…,则得到的平

2021-06-18 11:51:46 106

原创 最小的K个数

题目描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组输入输出输入:[4,5,1,6,2,7,3,8],4返回值:[1,2,3,4]解题思路代码示例# coding:utf-8class Solution: def GetLeastNumbers_Solution(self, tinput, k): # 创建最大堆,最大堆用数组表示,

2021-06-18 09:29:38 60

原创 二叉搜索树与双向链表

转自:https://blog.csdn.net/u010005281/article/details/79657259题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据结构4.你不用输出或者处理,示例中输出里面的英文,比如

2021-06-16 22:53:56 129 1

原创 二叉树中和为某一值的路径

题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入输出示例示例1输入:{10,5,12,4,7},22返回值:[[10,5,7],[10,12]]示例2输入:{10,5,12,4,7},15返回值:[]解题思路广度优先的方式遍历二叉树。遍历的代码示例...

2021-06-16 21:01:26 49

原创 二叉搜索树的后续遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。(ps:我们约定空树不是二叉搜素树)输入输出示例输入:[4,8,6,12,16,14,10]返回值:true解题思路**二叉搜索树:**根节点的左子树上的所有节点值都比根节点的值小,右子树上所有节点的值都比根节点的值大;其次左子树和右子树也呈现这种趋势。如下是一个二叉搜索树。首先从输入的序列sequence中找出根节点,因为是确定的是后序

2021-06-16 16:26:00 84

原创 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印输入输出示例输入:{5,4,#,3,#,2,#,1}返回值:[5,4,3,2,1]解题思路初始化:一个队列queue, 将root节点入队列queue中如果队列不空,做如下操作:弹出队列头,保存为node,将node的左右非空孩子加入队列做2,3步骤,直到队列为空代码示例# coding;utf-8class TreeNode(): def __init__(self, x): self.val

2021-06-15 17:45:14 57

原创 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入输出示例输入:{8,6,10,5,7,9,11}返回值:{8,10,6,11,9,7,5}解题思路递归:交换根节点的左右子树;然后递归对左右子树的根节点的左右子树进行交换。非递归:非递归借助队列,让每一次的结点都保存到队列中,然后当前遍历的根节点出队,并交换其左右结点;判断左右结点是否存在,如果存在就存入队列,存入队列后循环执出队得到遍历节点,继续以同样的方式进行判断;直到队列为空,说明遍历完成。代码示例# coding:u

2021-06-15 17:01:30 60

原创 树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)输入输出示例示例1输入:{8,8,#,9,#,2,#,5},{8,9,#,2}返回值:true示例2输入:{8,8,#,9,#,2,#,5},{8,9,#,3}返回值:false解题思路使用递归。考虑为空的情况;判断两个树的根节点是否相等,如果相等则递归进行左右子树的比对;如果不相等,则继续遍历A树的左右子树,看是否与B树的根节点相等;这两个过程用两个递归解决代码示例# -*-

2021-06-15 11:40:24 44

原创 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。输入输出示例输入:[1, 2, 3, 4, 5, 6, 7], [3, 2, 4, 1, 6, 5, 7]返回值:[1, 2, 5, 3, 4, 6, 7]解题思路对于已知二叉树的先序遍历和中序遍历如下:先序:pre=[1, 2, 3, 4, 5, 6,

2021-06-15 09:49:56 36

原创 二叉树的遍历(深度遍历)

递归遍历先序、中序、后序# coding:utf-8class TreeNode(object): def __init__(self, x): self.value = x self.left = None self.right = None# 递归遍历def preOrderRe(root): if root == None: return None print(root.value, end="

2021-06-14 17:18:01 108

原创 数组中只出现一次的两个数字

题目描述一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入输入示例输入:[1,4,1,6]返回值:[4, 6]说明:返回的结果中较小的数排在前面代码示例## 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可## # @param array int整型一维数组 # @return int整型一维数组#class Solution: def FindNumsAppearOnce(self , ar

2021-06-12 17:22:05 57

原创 丑数(第n个丑数)

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。输入输出示例输入:7返回值:8解题思路丑数:1, 2, 3, 4, 5, 6, 8, 9, 10…可发现规律:每个丑数都可以由其他两个丑数相乘而得到。12=2;13=3;15=5;22=4;23=6;24=222=8;33=9;25=10代码示例# -*- coding:utf-8 -*-clas

2021-06-12 16:19:33 125

原创 删除链表中的重复结点(不保留)

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5输入输出示例输入:{1,2,3,3,4,4,5}返回值:{1, 2, 5}解题思路代码示例保留一个重复结点的情况# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):#

2021-06-09 16:01:20 141

原创 二进制中的个数

题目描述输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示输入输出示例示例1:输入:10返回值:2示例2:输入:-1返回值:32解题思路补充知识补码:原码取反后加1-5:符号为为1,5的二进制原码为0000 0101-5的原码为:1 0000 0101;符号位不变其余位取反后:1 1111 1010;取反后加1 1111 1010 + 0000 0001=1 1111 1011方法一python中二进制不只有32位,首先使用0xFFFFFFFF截取n的32

2021-06-09 11:07:11 288 2

空空如也

空空如也

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

TA关注的人

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