
java
文章平均质量分 89
shiyan55
这个作者很懒,什么都没留下…
展开
-
浅谈HTTP协议
HTTP协议HTTP协议是Hyper Text Transfer Protocol的缩写,即超文本传输协议,是应用层上使用非常广泛的一组协议,主要负则从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器,它个基于TCP/IP通信协议来传递数据。浏览器作为客户端,通过URL向web服务器发送请求,服务器收到请求后,经过一系列的处理生成响应发送给客户端。认识URLURL即Uniform Resource Locator(统一资源定位符)。平时我们俗称的"网址",其实就是说的是UR原创 2021-02-27 17:32:35 · 228 阅读 · 0 评论 -
剑指offer44.翻转一个字符串顺序列
题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?输入:I am a student.输出:student. a am I思路:利用栈的先进后出特性,将这个句子中的单词存储进原创 2020-11-30 20:45:54 · 99 阅读 · 2 评论 -
剑指offer21题,栈的压入,弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)。示例1输入[1,2,3,4,5],[4,3,5,1,2]返回值false之前做过一道选择题,也是根据栈的压入顺序来选择可能的出栈结果。当时觉得选择题做起来比较简单,画画图就能出结果,主要原创 2020-11-26 13:09:04 · 127 阅读 · 0 评论 -
[牛客]字符串中找出连续最长的数字串
题目描述:读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。测试用例:输入abcd12345ed125ss123456789输出123456789思路:遍历这个字符串,定义一个max用来记录数字字符串的最长长度,定义一个count用来表示某一段数字字符串的长度,如果count>max,则将count的值赋给max。并记录下此时的下标,标记为end,原创 2020-11-18 17:35:15 · 615 阅读 · 2 评论 -
[牛客]合法括号序列判断(使用栈)
题目描述:对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。一个合法的括号串定义为:1.只包括括号字符;2.左括号和右括号一一对应。测试用例:“(()())”,6返回:true测试用例:“()a()()”,7返回:false主要思路:建立一个Character类型的栈,存放左括号,遇到右括号则与栈顶元素进行匹配然后弹出栈顶元素,如果最后遍历完这个字符串,栈为空,则说明全部括号匹配成功,返回原创 2020-11-18 17:08:55 · 326 阅读 · 0 评论 -
[牛客]数组中的逆序对(归并思路)
有一组数,对于其中任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对。请设计一个高效的算法,计算给定数组中的逆序对个数。给定一个int数组A和它的大小n,请返回A中的逆序对个数。保证n小于等于5000。测试样例:[1,2,3,4,5,6,7,0],8返回:7思路一:暴力算法遍历数组,将数组中的每个元素与这个元素后面的其他元素依次进行比较,如果比他小则使计数器加1,如果大则不进行操作,因为每个元素都需要与他之后的所有元素进行比较,因此时间复杂度为O(n^2)。代码: pub原创 2020-11-17 16:23:02 · 346 阅读 · 0 评论 -
哈希表及其详解
哈希前言哈希表:哈希冲突:冲突的避免1、设计哈希函数2、设置负载因子调节冲突的解决1、闭散列2、开散列/哈希桶冲突严重时的解决办法性能分析和 java 类集的关系前言观察下列数据13 24 32 6 4 89 56在刚开始接触java时,想要在一组序列中查找指定元素,可以遍历这个序列,找到与之匹配的元素,进行返回,他的时间复杂度为O(n)。对其进行优化可以得到时间复杂度为O(log2n)的方法,即将其存储在一个二叉搜索树中,或者使用二分查找。4 6原创 2020-11-14 22:25:52 · 1155 阅读 · 0 评论 -
七种基于比较的排序算法基本原理及实现
七种基于比较的排序算法基本原理及实现排序:1.直接插入排序2.希尔排序3.选择排序4.堆排序5.冒泡排序6.快速排序7.归并排序最近刚学习完七种比较常见的基于比较的排序算法,感觉比较重要,所以写个博客记录一下,不多说,开冲。排序:排序就是使一串无序的数字经过处理之后变得有序,可以是升序,也可以是降序,算法中的排序主要是排升序。排序需要考虑的因素:时间复杂度:算法中的基本执行次数。空间复杂度:临时占据存储空间大小的量度。衡量一个算法所需要的额外空间。稳定性:两个相等的数据,如果经过排序后,排序算原创 2020-11-11 09:26:01 · 4647 阅读 · 1 评论 -
JAVA中的异常处理机制
异常程序在运行时出现错误通知调用者的一种机制。Throwable类是Java语言中所有错误和异常的父类。异常分为以下两种:1.运行时异常/非受查异常:在程序运行时抛出的异常eg:public static void main(String[] args) { int[] array = {1, 2, 3, 4}; System.out.println(array[4]); System.out.println("hello");}运行结果一些常见的非受查异常:原创 2020-10-26 20:18:36 · 106 阅读 · 0 评论 -
定义一个单链表
链表:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。链表是由一个一个的节点相连接的,每一个节点都是一个对象,都有两个属性(data,next)。根据链表的结构可以分为:1.带头、不带头2.单向、双向3.循环、非循环这些组合起来就有8种结构;编写一个具有简单功能的不带头结点的单向非循环链表。class Node { public int data;//默认值为0 public Node next;//默认值为0原创 2020-10-19 22:43:53 · 711 阅读 · 0 评论 -
定义一个顺序表
线性表线性表是n个具有相同特性的数据元素的有限数列,常见的线性表有:顺序表、链表、栈、队列、字符串…线性表在逻辑上是一个线性结构,也就是说是一条线性的直线,但在物理结构上并不一定是连续的,线性表在物理结构上存储时,通常以数组和链式结构的形式存储。数组形式:链式结构:顺序表顺序表使用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。顺序表一般可以分为:静态顺序表:使用定长数组存储。动态顺序表:使用动态开辟的数组存储。静态顺序表适用于确定知道需要存多少数原创 2020-10-16 09:42:38 · 1037 阅读 · 0 评论 -
Java中方法的定义、重载、递归
方法(Method)java的方法对应的就是c语言中的函数。方法存在的意义:1.方法是能偶模块化的组织代码(当代码规模比较复杂的时候)。2.做到代码被重复使用,一份代码可以在多个位置使用。3.让代码更好理解更简单。4.直接调用现有开发方法,不必重复造轮子。方法的定义:public static 返回值(void/int…等) 方法名(形式参数列表){方法体;}public static:因为当前所有的方法写完之后,会在main方法中调用,main方法是 static的。返回值原创 2020-10-11 16:11:49 · 129 阅读 · 0 评论