自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断两个字符串是否互为旋转词

题目:如果一个字符串 str,把字符串 str 前面任意的部分挪到后面形成的字符串叫做 str 的旋转词。给定两个字符串 a 和 b,请判断 a 和 b 是否互为旋转词举例:a = “cdab”,b = “abcd”,返回 truea = “1ab2”,b = “ab12”,返回 falsea = “2ab1”,b = “ab12”,返回 true要求:当 a 和 b 长度一样,都为...

2020-04-24 07:58:39 415

原创 去掉字符串中连续出现 k 个 0 的子串

题目:给定一个字符串 str 和一个整数 k,如果 str 中正好有连续的 k 个 ‘0’ 字符出现时,把 k 个连续的 ‘0’ 字符去除,返回处理后的字符串举例:str=“A00B”,k = 2,返回"AB"str=“A0000B000”,k = 4,返回"AB000"思路:如果 str 为空或者 k < 1,直接返回原字符串;设置 count 为目前出现的字符 ‘0’ 的...

2020-04-23 15:32:41 261

原创 字符串中数字子串的求和

题目: 给定一个字符串str,求其中全部数字串所代表的数字之和要求:忽略小数点考虑‘-’,如果有连续奇数个,则为负,如果有连续偶数个,就为正数例如:str=“A-1B- -2C- -D6E” return 7思路:设置变量 res 为目前的累加和,设置变量 num 为当前收集到的数字,设置变量 pos 为将 num 累加到 res 时 num 的正负,起初 res=0,...

2020-04-23 11:27:33 814

原创 判断两个字符串是否为变形词

给定两个字符串 str1 和str2,如果两个字符串中出现的字符种类一样,次数也一样**,则互为变形词,实现一个函数判断两个字符串是否互为变形词例如: str1=“123”,str2=“132”,true; str1=“123”,str2=“1332”,false; /** * 思路:1. 如果其中一个字符串为空或者两个字符串长度不相等,返回 false * ...

2020-04-23 08:25:26 266

原创 TCP之流量控制、拥塞控制

理想上,A 向 B 发送数据包,B 收到后回 ACK,可现实不会这样,往往是不等 B 回应,A 连续发送(比如给武汉运输口罩,不是等武汉人员回应我收到了口罩,才发第二车,往往是连续发好几车,能提高效率),那么,就会带来一个问题,那连续发多少量是合适的呢?发的太多,如果网络拥堵或者对方接收不了这么多,发的太少,效率低下,如何控制发送量的问题呢?发送量的控制一般和网络情况和接收方的接收能力有关,那就...

2020-04-18 16:04:25 275

原创 TCP协议之连接管理、三次握手及四次挥手

连接管理/建立连接的目的为什么需要 TCP 连接因为连接管理是对不同五元组描述的通信通道进行管理什么是连接抽象层面上,就是五元组标识的唯一一条通信通道TCP 通信过程中,需要保存连接(本地序列号和对方的确认序列号),所以,TCP 协议栈需要针对每个连接,管理上述信息,管理用计算机的语言来讲,就是先描述再组织描述:先定义类,每个连接都是一个 Connection 对象组织:通过 Li...

2020-04-18 12:39:12 221

原创 TCP协议之确认应答机制和超时重传机制

TCP 是什么TCP 为传输控制协议,在传输的过程中,主要保证数据的可靠性TCP 的三个特点有连接可靠性面向字节流TCP 协议包目的端口:解包4位首部长度:分用ACK:确认号是否有效SYN:请求建立连接检验和:检验数据的正确性紧急指针:标识哪部分数据是紧急数据TCP 是可靠的,怎么保证可靠性?确认应答机制...

2020-04-17 19:58:11 1874

原创 调整数组顺序使奇数位于偶数前面

题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分//双指针,一个从前面走,一个从后面走//前面遇到偶数停下来//后面遇到奇数停下来//交换,直到i = jclass Solution { public int[] exchange(int[] nums) { int i = 0; ...

2020-04-17 19:39:01 105

原创 UDP

UDP是什么UDP和TCP一样,都是传输层的协议,传输层是端对端的ip + portip 可以唯一标识网络上的一台主机,主机拥有唯一的一个 ip 地址,一个主机可以有多个 ip,有多少网卡就有多少 ipport 可以唯一标识主机上的唯一进程,一个进程可以有多个 port,一个 port 只能绑定一个端口所以,ip + port,可以唯一标识网络上的一台主机上的唯一进程常见端口号SS...

2020-04-17 09:46:08 389

原创 cookie 和 session

cookiehttp 请求是无状态的,也就是说第一次向服务器发送请求,用账号和密码登录后,第二次请求服务器服务器不知道当前是哪个用户在登录,引入 cookie 机制,在第一次登录后服务器会给浏览器返回一些数据,可以使用 cookie 来保存这些数据,会保存在本地,当该用户再次发送请求时,就会带上cookie,此时,浏览器就知道是谁了sessionsession 的引入是因为 cookie 是...

2020-03-28 19:55:10 152

原创 HTTP协议

为什么要有HTTP通信是将数据从A结点发送到B结点,可是仅仅将数据交给B就可以了吗?举个栗子:在淘宝购物,当卖家发送货物由物流将货物运输给买家就ok了吗?肯定不是,买家会检查商品,会使用商品,还会给评价。我们知道,TCP/IP是传输层的协议,所以TCP/IP就相当于物流公司,而两端还需要对数据进行加工处理或者使用,所以还需要一层协议,不关心通信,而关注使用细节。这层协议就是应用层协议,而应用是...

2020-03-28 18:51:38 226

原创 测试分类

一、按照开发阶段二、按测试实施组织三、按是否查看代码分为白盒测试、黑盒测试、灰盒测试什么是白盒测试?白盒测试(结构测试、透明盒测试)就是对软件的代码进行测试,测试代码里边的接口、数据结构、路径覆盖、错误处理等等,接口测试也是白盒测试的一种什么是黑盒测试?黑盒测试就是功能测试,不看软件的代码,只对软件功能进行测试,看实际结果和预期结果是否一致什么是灰盒测试?灰盒测试...

2020-03-26 20:12:40 255

原创 测试用例

测试用例是为了实施测试而向被测试的系统提供的一组集合,这组集合包括:测试环境、测试步骤、测试数据、预期结果等评价测试用例的标准:用例表达清楚,无二义性用例可操作性强用例的输入与输出明确,一条用例只有一个预期结果用例的可维护性较好用例对需求的覆盖率高暴露程序Bug的能力强测试用例的设计方法测试用例的粒度粒度:指测试用例编写的详细程度测试用例不应该写的太详细(效率问题),也...

2020-03-26 09:52:12 165

原创 七大排序总览

2020-03-24 21:38:37 144

原创 七大排序之堆排序

原理类似于选择排序,只是不是遍历的方式,利用堆的方式创建大堆或者小堆,让最大的数或者最小的数处于堆顶实现public static void heapSort(int[] array) { createHeap(array); for (int i = 0; i < array.length - 1; i++) { // 交换前 // 无序区间: [0, ar...

2020-03-24 20:22:23 120

原创 七大排序之归并排序

原理归并排序的思想是先拆后合,先让部分有序,再让总体有序实现public static void mergerSort(int[] arr){ mergerSortInter(arr,0,arr.length);}public static void mergerSortInter(int[] a,int low,int high){ if(low>=high-1){ r...

2020-03-24 19:57:45 119

原创 七大排序之希尔排序

原理希尔排序的思想是,先将原有数据按照一定的 gap(间隔)分开,分成多个组,每一组内进行排序(直接插入排序),接着将 gap 缩小,重复上述分组排序工作,直到 gap==1 为止,gap 是没有规定的,但我们一般选择数组长度的一半。希尔排序是对直接插入排序的一个优化,当 gap=1 时,数组接近于有序,再进行排序就高效多了比如:实现复杂度...

2020-03-24 19:26:12 1137 1

原创 七大排序之快速排序

原理从待排序区间选择一个基准值做 partition,将比基准值大的放在基准值的右边,比基准值小的放在基准值的左边采用分治思想,对左右两个小区间按照同样的方式处理,直到小区间的长度为 1 ,代表有序,或者长度为 0 ,代表没有数据实现public class QuickSort{ public static void quickSort(int[] arr){ quickSor...

2020-03-24 18:31:37 148

原创 七大排序之冒泡排序

原理也是将最大的数放在数组最后边,和选择排序不一样的是,是将相邻的两个元素作比较,将大的放在最后,重复此步骤,则将数组中最大的元素就放在最后边了实现public static void bubbleSort(int[] arr){ //在无序区间将相邻两个数比较,知道数组末尾,则最后一个数就是最大的数 //无序区间:[0,arr.length-i) ...

2020-03-23 14:03:33 197

原创 七大排序之选择排序

原理刚开始整个数组是无序区间,在无序区间找到最大的元素,将最大元素放在数组的最后,第二次在无序区间查找最大元素,找到最大的,放入数组的倒数第二个,依此类推实现 public void selectSort(int[] arr){ //无序区间:[0,arr.length-i) //有序区间:[arr.length-i,arr.length) ...

2020-03-23 12:24:32 168

原创 七大排序之直接插入排序

原理整个区间被分为有序区间和无序区间,可以让数组的第一个数据充当有序区间,其他是无序区间,每次将无序区间的第一个数和有序区间最后一个数作比较,如果无序区间的数比有序区间的数小,从有序区间的最后一个数开始比较,知道这个数大于无序区间的数或者下标是 0 停止,有序区间增加;如果要比较的数小于无序区间的最后一个数,则不比较,有序区间增加实现public static void insertSort...

2020-03-23 08:30:03 161

原创 根据二叉树创建字符串

题目描述:你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。示例 1:输入: 二叉树: [1,2,3,4]输出: “1(2(4))(3)”解释: 原本将是“1(2(4)())(3())”,在你省略所有不必要的空括号对之后,它将是“1(2(4))...

2020-03-22 09:20:08 360

原创 中序遍历和后序遍历构造二叉树

例如,给出中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树//和用前序遍历和中序遍历确定二叉树类似import java.util.*;class Solution { public TreeNode buildTree(int[] inorder, int[] postorder) {...

2020-03-21 15:11:44 204

原创 前序遍历和中序遍历构造二叉树

例如,给出:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树//前序遍历和中序遍历可唯一地确定一棵二叉树//中序遍历和后序遍历可唯一地确定一棵二叉树import java.util.*;class Solution { public TreeNode buildTree(int[] pre...

2020-03-21 14:54:42 339

原创 二叉树的最近公共祖先

题目描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3...

2020-03-21 14:11:16 140

原创 根据先序遍历输出中序遍历

题目描述:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串:ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。//首先要根据所给字符串创建二叉树// 1. 如果是 # 说明是空// 2. 如果不是 # 开始创建//输出中序遍历...

2020-03-21 09:08:13 1048

原创 对称二叉树

题目描述:给定一个二叉树,检查它是否是镜像对称的例如,二叉树 [1,2,2,3,4,4,3] 是对称的//思路:对称,说明沿着中线对折过去,完全重合//如果二叉树是空树,肯定符合要求//如果非空,则要求对于两个兄弟节点而言,一个节点的左孩子要和他的兄弟节点的右孩子相等,右孩子要和他的兄弟节点的左孩子相等class Solution { public boolean i...

2020-03-18 14:53:14 104

原创 判断一颗二叉树是否是平衡二叉树

题目描述:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1示例 1:给定二叉树 [3,9,20,null,null,15,7],返回 true示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4],返回 false//平衡二叉树是要判断每个节点的差值//可以...

2020-03-17 17:52:19 363

转载 求二叉树的最大深度

题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。//如果是一棵空树,深度为 0 //如果不是空树//看左子树和右子树哪个高 + 1(根的高度)import java.util.*;class ...

2020-03-17 16:59:29 169

原创 判断一棵树是否是另一棵树的子树

题目描述:给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树//思路其实很简单,如果 t 是 s 的子树,要么这两棵树相同(包括空树),要么 t 是 s 的左子树或者右子树//当两棵树相同时,结果一定是 true(前面已经提到过如何判定相同)//判断 t 是 s 的...

2020-03-17 16:43:54 241

原创 判断两颗二叉树是否是相同的树

题目描述:给定两个二叉树,编写一个函数来检验它们是否相同如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的//先考虑空树的情况//如果两个树都为空,那么这两棵树肯定是相同的//如果其中任意一棵树为空,两棵树肯定不相同//当且仅当两棵树的根、左子树、右子树都相同,这两棵树才相同class Solution { public boolean isSameTre...

2020-03-16 14:48:14 305

原创 java 中的 JDBC 编程

我们都知道,无论用什么方法编程,数据的存储是在数据库中的。不同的数据库对不同的编程语言提供了不同的数据库驱动包,MySQL提供了 Java 的驱动包 mysql-connector-java,需要基于 Java 操作 MySQL 需要该数据包认识JDBCJDBC(Java Database Connectivity),java 数据库连接,是一种用于执行 SQL 语句的 API,它是 Java...

2020-03-14 22:43:41 241 1

原创 用栈实现队列

我们知道,栈是先进后出的数据结构,队列是先进先出的数据结构,用栈实现队列,可以用两个栈实现,如下图所示,先入栈的也是先出栈的class MyQueue { Stack<Integer> stack1; Stack<Integer> stack2; public MyQueue() { stack1 = new Stack<...

2020-03-14 20:33:42 104

原创 实现最小栈

题目描述:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈push(x) – 将元素 x 推入栈中pop() – 删除栈顶的元素top() – 获取栈顶元素getMin() – 检索栈中的最小元素示例1:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);...

2020-03-14 14:21:42 115

原创 括号匹配问题

题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效有效字符串需满足:左括号必须用相同类型的右括号闭合左括号必须以正确的顺序闭合注意空字符串可被认为是有效字符串示例 1:输入: “()”输出: true示例 2:输入: “{[]}”输出: true示例 3:输入: “(]”输出: falseimport...

2020-03-13 19:58:53 208

原创 找出环形链表的入环点

题目描述:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node inde...

2020-03-13 19:18:08 595

原创 栈和队列的异同

相同点:他们都属于线性表栈和队列都是操作受限制的线性表都只能在线性表的端点进行插入和删除不同点:栈只允许在栈顶进行插入或删除元素,遵循先进后出原则。类比生活中射击,最开始放进去的子弹,最后打出队列在队首删除元素,在队尾插入元素,遵循先进先出原则。类比排队,排在前面的最先被服务...

2020-03-13 14:41:32 404

原创 栈和队列

栈栈是线性表的一种,只允许在栈顶进行插入或者删除的一种数据结构,栈中的数据遵循先进后出或者说是后进先出的原则出栈:对数据进行删除操作入栈:对数据进行插入操作,入栈也叫做压栈栈只有一个口,所以入栈出栈的操作都是在栈顶实现的在 Java 集合中,栈是一个接口,可用顺序表和链表实现在插入和删除数据时,我们可以认为是尾插/尾删操作,而对于顺序表来说,这种操作更容易实现,所以我们用顺序表来实现...

2020-03-13 14:15:05 135

原创 判断链表是否有环

题目描述:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。//本题大家只要相通,只要链表存在环,迟早都会相遇,而没有必要...

2020-03-11 21:53:08 126

原创 找两个链表的第一个公共节点

题目描述:输入两个链表,找出它们的第一个公共节点示例1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA= 2, skipB = 3输出:Reference of the node with value = 8 输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表...

2020-03-11 21:19:32 135

空空如也

空空如也

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

TA关注的人

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