自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 项目实战-基于redis的内存数据库Medis(附源代码以及测试用例)

目录1 项目介绍1.1 redis简介1.2 redis 中的主要操作介绍2项目整体部署3框架思路4项目代码5项目测试6测试结果1 项目介绍该项目是通过仿照redis的缓存模型,只支持hash、list两种数据类型,单线程版本实现的服务器端。主要流程是:与客户端建立Socket连接后,将二进制字节流通过协议的解析,反序列化获取输入的对象流,通过自...

2019-08-24 20:29:08 186

原创 项目实战-Medis测试用例

2019-08-24 20:19:06 92

原创 Java语言实现快排的递归与非递归及对递归的优化

目录1快排思想2递归实现代码3非递归实现代码1快排思想每次从待排序数码中选取一个“基准值”,将该数码分成两部分,左边的一部分数值都小于该“基准值”,右边的一部分数值都大于该“基准值”,递归算法每次将左右两部分数码再次进行快排,非递归则借助栈实现,具体见以下代码:2递归实现代码递归的优化可以从两方面着手:三数取中法选key和递归到小的区间时采用插入排序pu...

2019-08-22 17:37:50 87

原创 java语言实现二叉树的最近公共祖先-力扣

1.题目描述2.代码实现/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */clas...

2019-08-07 11:58:31 92

原创 java语言判断一棵树是否为对称二叉树

目录1.题目描述2.代码实现1.题目描述2.代码实现/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = ...

2019-08-06 21:22:19 153

原创 java语言判断一棵树是否是平衡二叉树(递归和迭代)

目录1.题目描述2.递归实现3.迭代实现1.题目描述2.递归实现/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) ...

2019-08-06 21:02:34 151

原创 Java语言用递归和非递归实现二叉树的后序遍历

目录1.递归实现2.非递归实现(借助栈)1.递归实现/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; }...

2019-08-06 15:04:08 101

原创 Java--关于堆的一些基本知识

-二叉树的存储结构有顺序存储和链式存储。-顺序存储是指数据存储在数组上,一般只适合表示完全二叉树;非完全二叉树一般用链式存储结构,链式存储分为二叉链和三叉链,一般普通的链表用二叉链就可以了,红黑树用的是三叉链。-大根堆:根节点的值大于左右孩子结点的值-小根堆:根节点的值小于左右孩子结点的值-堆的性质:堆中某个结点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。-堆的向下...

2019-08-06 09:57:27 43

原创 数据结构--java语言实现无头单向非循环链表

接口实现定义一个接口:public interface ILinked { //头插法 void addFirst(int data); //尾插法 void addLast(int data); //任意位置插入,第一个数据节点为0号下标 boolean addindex(int index,int data); //查找是否包含...

2019-07-30 12:00:47 39

原创 python+selenium实现QQ空间的登录

先上代码:import time#导入seleniumm2中的webdriver库from selenium import webdriver#实例化出一个浏览器driver = webdriver.Chrome()#设置浏览器窗口的位置driver.set_window_position(20,40)#设置浏览器窗口的大小driver.set_window_size(11...

2019-07-25 17:09:04 2016

转载 详解介绍Selenium常用API的使用--Java语言(完整版)

参考:http://www.testclass.net/selenium_java/一共分为二十个部分:环境安装之Java、环境安装之IntelliJ IDEA、环境安装之selenium、selenium3浏览器驱动、selenium元素定位、控制浏览器操作、WebDriver常用方法、模拟鼠标操作、模拟...

2019-07-25 11:37:50 80

原创 java语言实现数字中出现次数超过一半的数字

目录1题目描述2解题思路3代码实现1题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。2解题思路刚拿到这个题的时候,一脸蒙*_*,竟然没有想到用Map集合实现,子类HashMap中有很好的key...

2019-07-25 09:55:25 57

原创 java语言实现回文数索引--牛客网

目录1题目描述2解题思路3代码实现1题目描述给定一个仅由小写字母组成的字符串。现在请找出一个位置,删掉那个字母之后,字符串变成回文。请放心总会有一个合法的解。如果给定的字符串已经是一个回文串,那么输出-1。2解题思路输入一个字符串,判断其是否为回文,若为回文,输出-1;若不是回文,则删除该字符串中的一个字符,使其变成回文结构,并且返回该字符对应的...

2019-07-24 10:28:46 110

原创 java中用length求二维数组的长度

今天刷题的时候碰到二维数组长度的问题,直接敲代码验证~用事实说话:说明length求得的是二维数组的行数,即data[i][j]中的i但如果要求二维数组的列数呢?很简单,用data[0].length就好了~...

2019-07-21 23:06:24 1024 1

原创 java语言实现连续子数组最大和--牛客网

目录1题目描述2解题思路3代码实现1题目描述输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。在写这个题的时候,测试用例从20%,60%,80%,90%,最终100%通过,必须要写篇博客好好记录一下了~2解题思路刚开始想的是,定义一个方法,求出数组的最大字数组。定义一个变量num,sum...

2019-07-21 20:49:06 211

原创 java语言实现木棒拼图-牛客网

目录1题目描述2解题思路3代码实现1题目描述链接:https://www.nowcoder.com/questionTerminal/8bbc9415216d47459c425b5e19164365?orderByHotValue=1&mutiTagIds=665&page=1&onlyReference=false来源:牛客网有一个由很...

2019-07-15 11:07:17 112

原创 黑盒测试、白盒测试以及灰盒测试

目录1 白盒测试2 黑盒测试3 灰盒测试1 白盒测试白盒测试允许我们检查程序内部的结构,从中获得测试数据,遗憾的是,常常忽略了程序的规范。白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构(源代码)的程度。常见的白盒测试方法主要有:语句覆盖、判定覆盖、条件覆盖、多重条件覆盖等。2 黑盒测试黑盒测试就是将程序视为黑盒子,测试目标与程序内部机制和结构完全无关,而...

2019-07-07 09:09:36 940

原创 selenium的基本使用和常用API

目录1 自动化测试2 selenium介绍3 selenium工作原理4 简单脚本实现5 元素的定位6 常用的操作测试对象的方法7 添加等待8 打印信息9 浏览器操作1 自动化测试自动化测试(一般指功能测试)指软件测试的自动化,就是将人为驱动的测试行为转化成机器执行的过程。常见的自动化测试工具有:selenium、Rational Robot、QT...

2019-07-03 10:57:57 1329 3

原创 敏捷开发与传统开发的区别

首先我们来看看敏捷开发:不管产品针对的群体是普通大众还是企业的人事部,一个铁的事实告诉我们--21世纪的客户对能够立即发布的高质量应用产品总是求“贤”若渴,青睐有加。可遗憾的是老一套传统的开发模式已经不能够适应这种激烈的竞争环境了。在本世纪之初,一批来自各个领域的开发人员走到了一起,开始讨论轻量化和快速地开发方法在当时的状况。在会议上他们注意比较那些成功的软件项目的特点,以及究竟是什么因素...

2019-07-01 14:36:44 1900

原创 MySQL数据库基础知识点总结

目录1 表的增删改查1.1 Create1.2 Retrieve1.3 Update1.4 Delect2 MySQL内置函数2.1 日期函数2.2 字符串函数2.3 数学函数2.4 其他函数3 复合查询举例4 内外连接4.1 内连接4.2 外连接5 索引5.1 创建索引5.1.1 创建主索引5.1.2 创建唯一索引5...

2019-06-28 15:07:36 190

原创 java语言统计每个月的兔子总数

目录1.题目描述2.解题思路3.代码实现1.题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?2.解题思路通过计算前几个月的兔子总数,我们不难发现:以后每个月的兔子总数呈斐波那契数,所以就不难下手--用递归的方法解决!!即getTotalCount(monthCount-1)+ge...

2019-06-24 10:02:50 374

原创 Matlab语言实现模糊洗衣机控制器的设计

目录1 引入2 模糊洗衣机内部结构3 模糊控制洗衣机的实现方法4 实验过程4.1 定义模糊控制器结构4.2 定义输入、输出模糊集4.3 定义隶属函数4.4 建立模糊控制规则4.5 模糊推理4.5.1 规则匹配4.5.2 规则触发4.5.3 规则前提推理4.5.4 每条规则的推理4.5.5 模糊系统总的输出(聚合)4.5.6 去模糊化1...

2019-06-17 22:47:24 1150

原创 Java语言用递归和非递归实现二叉树的前序遍历

目录1 递归实现1.1 思路1.2 代码2 非递归实现2.1 思路2.2 代码1 递归实现1.1 思路底层是由栈实现,若根节点非空,先打印根节点,之后递归到根节点的左孩子节点...当遇到null节点时,返回;此时第6行代码执行完毕,进入第7行代码,注意此时递归后的节点,访问到当前节点的右孩子节点又进入递归~刚开始理解递归有些难,但这要自己慢慢琢磨、摸索代码~...

2019-06-13 14:39:38 388

原创 Java语言用递归和非递归实现二叉树的中序遍历

目录1 题目描述2 解题思路3 递归代码实现4 非递归代码实现1 题目描述2 解题思路递归和非递归底层实现都是栈。对于递归:先一直向左遍历,直到为空时返回并且打印最左的左孩子,然后再判断该元素是否有右孩子,此时的元素再递归判断左孩子~~~和之前情形一致。 对于非递归:将所有的左孩子都入栈,定义一个top指向栈顶元素,当遍历cur到null时,可以将cur指向新...

2019-06-11 22:22:47 2231

原创 Java语言实现二叉树遍历:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。

目录1 题目描述2 解题思路3 代码实现1 题目描述编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。2 解题思路将根据输入的先序遍历字符串创建一个二叉树,之后对该...

2019-06-11 13:48:55 1720

原创 数据结构--Java语言实现冒泡排序及其优化

1 基本思想冒泡排序就是将待排序的数据元素两两进行比较,每趟比较都将最大(最小)的数沉。所以我们需要定义两个循环,外层循环控制比较的趟数,内层循环控制比较的次数;对于优化的冒泡排序来说:如果前面比较的数字达到了我们的预期--按从大到小或者从小到大,则不必再进行比较,直接将外层循环向后推进即可,不必在比较数值的大小。2 代码实现//未优化的冒泡排序public static vo...

2019-06-04 14:56:37 99

原创 数据结构--Java语言实现插入排序

目录1 基本思想2实现2.1 直接插入排序2.2希尔排序1 基本思想把待排序的记录按其关键码值的大小逐个插入到一 个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。当只有一个记录时,该记录就记为有序序列,从第二个数开始进行插入排序。2实现2.1 直接插入排序当插入元素arr[i](i>=1)时,假设前面的arr[0],arr[...

2019-05-29 17:30:31 81 1

原创 数据结构--Java语言实现用两个队列实现栈

目录1 题目描述2 解题思路3 代码实现1 题目描述使用队列实现栈的下列操作:push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty...

2019-05-27 21:53:02 129

原创 数据结构--Java语言实现有效的括号

目录1 题目描述2 解题思路3 代码实现1 题目描述给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。2 解题思路栈:里面存放左括号,当有右括号出现时,将栈顶元素出栈,进行匹配即可。共有四种情况:...

2019-05-27 19:30:00 93

原创 数据结构--java语言实现最小栈

目录1 题目描述2 解题思路3 代码实现1 题目描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。2 解题思路利用两个栈集合stack和minStack:stack栈中...

2019-05-25 11:39:11 59

原创 数据结构--java语言实现用两个栈实现队列

目录1 题目描述2 解题思路3 代码实现1 题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。2 解题思路我们知道:栈-先进后出,队列-先进先出,如何用两个栈实现队列呢?很简单,我们可以用一个栈1进行入栈操作,另一个栈2进行出栈操作,这时我们就要分情况了:当栈2为空时,将栈1中的元素依次出栈并且将这些元素依次入到栈2,故栈1中先...

2019-05-25 10:57:03 292

原创 数据结构--java语言实现循环队列

目录1 题目描述2 解题思路3 代码实现1 题目描述设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能...

2019-05-24 22:29:42 1243

原创 数据结构--java语言实现合并两个排序的链表

目录1 题目描述2 解题思路3 代码实现1 题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。2 解题思路对于两个已经排序的链表,我们可以定义一个虚拟结点,通过比较两个链表值的大小,完成链表的拼接工作。最后返回虚拟结点的下一结点即可。3 代码实现public ListNode Merge(ListNode li...

2019-05-23 12:09:54 227

原创 数据结构--java语言实现找出两个链表的第一个公共结点

目录1 题目描述2 解题思路3 代码实现1 题目描述输入两个链表的头结点,若两个链表相交,返回交点结点,否则,返回null2 解题思路首先,我们不难想到:若两个链表相交,肯定成“倒Y”型。所以,我们可以将长度长一点的链表先走“差值”步,再次,两个链表同时走,若相交且没有走到尾结点处,返回该结点,否则,返回null3 代码实现public ListNode Fi...

2019-05-23 11:47:55 79

原创 数据结构--java语言实现删除链表中重复结点

目录1 题目描述2 解题思路3 代码实现1 题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->52 解题思路首先,定义一个虚拟结点node,其后保存单链表中不重复的结点,最后返回node.next...

2019-05-22 12:22:18 336 1

原创 数据结构--java语言实现返回链表中环的入口结点,若无环,则返回null

目录1 题目描述2 解题思路3 代码实现1 题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。2 解题思路首先我们不难想到,遍历一遍单链表,若某一结点的next指向null,则说明该单链表无环,返回null;若有环,我们定义两个引用fast和slow,让fast每次走两步,slow每次走一步,它俩肯定会在某个结点处相遇,那么问题来了,我们...

2019-05-22 11:30:20 78

原创 java语言实现汽水瓶问题

目录1 问题描述2 解题思路3 代码实现4 运行结果1 问题描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一...

2019-05-22 10:33:34 276

原创 数据结构--java语言实现链表的回文结构

目录1 题目描述2 解题思路3 代码实现1 题目描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。2 解题思路大的方向分为3步:① 找到中间结点 ② 对单链表后半部分进行反转 ③ 链表向中间推进判断值是否相等具...

2019-05-21 13:03:12 111

原创 数据结构--java语言判断链表是否有环

目录1 题目描述2 解题思路3 代码实现1 题目描述给定一个链表,判断是否有环。2 解题思路定义两个引用:fast和slow,在合法的情况下,让fast一次走两步,slow一次走一步,若某次遍历时fast==slow,则说明该链表有环。3 代码实现//给定一个链表,判断是否有环 public boolean hasCycle(){ No...

2019-05-20 17:30:48 99

原创 数据结构--java语言实现将单链表以给定值x分割成两部分,并按顺序输出

目录1 题目描述2 解题思路3 代码实现4 注意事项1 题目描述编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。2 解题思路首先,我们可以定义四个结点:分别是分割后x之前的头结点和尾结点、x之后的头结点和尾结点。其次,遍历单链表,将比x值小的结点...

2019-05-20 16:56:43 319

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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