自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指offer刷题14 复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路之所以叫复杂链表是因为,和普通的链表相比,他除去一个next指针,还有一个随机指针,指向一个随机的结点。可以先按照next指针把这些链表中的元素串起来,然后开始遍历链表,为每一个元素的random指针赋值,对于这个指针,因为是随机的,不太好找,所以我另设

2020-11-01 19:05:17 121

原创 剑指offer刷题13 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路这道题的标签是较难,但好像也没有较难的地方,就是按照顺时针的顺序遍历数组,然后输出。我把顺时针转的一个圈看成一个循环,每一趟循环又分成四个小循环,分别是上边一行,右边一列,下边一行,左边一列,判断好这些边界关系即可我遇

2020-11-01 18:51:47 139

原创 剑指offer刷题12 数组中重复的数

题目描述在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。返回描述:如果数组中有重复的数字,函数返回true,否则返回false。如果数组中有重复的数字,把重复的数字放到参数duplication[0]中。(ps:duplication已经初始化,可以直接赋值使用。)解题思路这道题题目

2020-11-01 18:34:17 150

原创 剑指offer刷题11 最小的k个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。解题思路因为牛客网这里对时间复杂度这里没什么要求,不像leetcode要求那么严格,本来我是想把整个数组按照复杂度排序,然后取前k个数。排序肯定是按照排序算法来的,冒泡排序(一趟)就是选出最大或最小的数,正巧这道解题关键就在冒泡排序。我遇到的问题之前用冒泡排序都是按从小大大排的,这次要取最小的数,自然是按照从大到小排,从第一个数开始,一次比较,遇到比它大的数就交换,这样

2020-11-01 18:18:32 143

原创 剑指offer刷题10 合并两个排序的链表

这道题绝对算是数据结构的经典题型了,之前备考的时候就已经写过无数次了,但之前都是手写的,实际运行起来还是会发现很多问题题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M知识点:链表解题思路两个链表从头开始比较,从小到大依次插入到排序链表中,这里要注意插入时新建结点然后插入到新链表中具体方法:设置指向两个原链表的指针,从头开始遍历,分别比较两个链表中对应的

2020-06-29 15:46:19 128

原创 剑指offer刷题9 链表中倒数第k个结点

看题就知道了,这道题就是寻找倒数第k个结点,题目很简单,而且我做题的速度也越来越快了,有一点点开心题目描述输入一个链表,输出该链表中倒数第k个结点。要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M知识点:链表解题思路首先判断链表中是否有k个结点,如果直接数小于k,直接返回空,否则遍历链表,找到倒数第k个结点并返回具体做法:从头到尾遍历链表,并设置计数器,求出链表长度,判断结点个数,不满足直接返回NULL,然后在从头开始遍历,寻找第(length-k+

2020-06-28 12:15:34 120

原创 剑指offer刷题8 两个链表的第一个公共结点

这道题重点在理解题意,牛客网的标签是难度中等,二星,其实只要题意理解清楚了就很简单问题描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M知识点:链表解题思路做这道题需要知道的两点:公共结点,并不是说当前结点相同,而是从此结点开始到链表结尾的一串子链表都一模一样链表是有序的,且为递增排列,这是题目中隐含的,通过给的测试

2020-06-27 13:26:25 129

原创 剑指offer刷题7 从尾到头打印链表

这道题连牛客网给的标签都是简单,一星,真的很简单,与其说知识点tag是链表,不如说是数组vector,我写代码全程只有十分钟,然后提交一次就ac了,第一次提交就通过了全部的测试的用例,虽然这道题简单,但还是有点小开心鸭题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路遍历链表,读取结点中的数据,放到数组中,因为是倒序打印,本来我想的是设置两个数组,一个先顺序存放从链表中读出来的数

2020-06-26 11:51:25 140

原创 剑指offer刷题6 反转链表

题目描述输入一个链表,反转链表后,输出新链表的表头。要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M牛客网给的标签是中等难度,二星,本来昨天时间很晚了,我就想挑一道简单的,这道题是我现在练的链表专题里通过率最高的,结果昨天出了点小问题,今天才做出来解题思路整体思路就是遍历链表,然后修改当前指针的next域,指向它在原链表中的前驱结点。这里画了一张图具体实现方法是:设置三个指针,原链表中的当前指针cur,指向当前结点的前驱结点的指针p,以及指向后继结点的

2020-06-25 12:46:35 172

原创 剑指offer刷题5 删除链表中重复结点

这道题牛客网给的难度是三星,较难,其实我觉得解题思路也没有很难,只是有一些细节需要注意题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路这道题的本质就是遍历链表,删除链表中的重复结点,注意不是去重,而是只要重复就删去,相当于

2020-06-23 22:28:10 146

原创 剑指offer刷题4 构建乘积数组

这几天特意挑的简单的题,目前都是数组相关的,这道连牛客网给的tag都是难度为一星,我连写带改bug总共也用了20分钟不到,是真的很简单题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)要求:时间限制:C/C++ 1秒,其他语

2020-06-16 15:51:09 156

原创 剑指offer刷题3 和为s的两个数字

这道题思路非常简单,对时间复杂度也没有过多的要求,是属于简单题吧,但还是要记录一下成果题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M。解题思路采用数组遍历的方法,由于数组是递增排列的,这里会有一个判断技巧,要找的数的位置肯定小于给的数,且只需要判断当前两个数字的和大于给定数时不满足条件直接放弃,转向下一组,这样可能会稍微节省一

2020-06-15 17:26:27 103

原创 struts2网站头部设计-session实现

网站设计,在最上边一栏有固定的信息,如导航栏,或者网站标题,或者登录用户的信息,我是用session实现的,session有效期为一次浏览器间,在该浏览不关闭的情况下,不刷新可以存在30分钟,比较适合用来做登录后的账号信息 获得session对象 struts2中不能直接使用session对象,必须先获取ActionContext对象,才能获取sessionActionContext context=ActionContext.getContext();Map session=con..

2020-06-10 02:01:39 161

原创 表单验证-字段检测

注册时需要填写信息,如密码、身份证号、电话号码、邮箱等信息,这些信息的格式都有一顶的要求,如密码不小于6位等要求,可使用js脚本对这些输入数据进行检测,当输入格式不符合要求时,系统自动弹出出错信息。1、script标签内添加验证函数格式如下,当满足正确的格式时可返回true<script type="text/javascript"> function check(){ if(条件不满足) return false; else return

2020-06-10 01:36:08 721

原创 记录毕设用到的一些SQL查询语句

本博客用于记录毕设期间我用到的一些SQL语句,都是很常见的,增删改查等 ,操作均以我数据库中的表为例 表中添加记录 String sql="insert into drug values(?,?,?,?)";String[] params={null,name_drug,specification,effect};添加药品,给药品属性赋值,主键是id_drug,我设置的MySql主键自动增长,所以参数值可以为空,如果没有设置自动增长,应该会报错,因为主键不能为空 删除表中数据

2020-06-10 01:06:36 273

原创 struts2利用值栈实现参数传递

值栈在struts2框架中,MVC的设计模式使得视图层和控制层分离,在这之间传递参数可以使用值栈。值栈就是 OGNL 表达式存取数据的地方。在一个值栈中,封装了一次请求所需要的所有数据,Struts2 会为每个请求创建一个新的值栈,值栈和请求是一一对应的关系,这种一一对应的关系使值栈能够线程安全地为每个请求提供公共的数据存取服务。使用方法:以下主要是两个方面,其他页面间参数传递可参考之前的博客action到jsp页面间首先需要获取值栈对象,将参数放到值栈中,跳转到jsp页面时取出参数即可,具体步骤如

2020-06-01 22:58:36 188

原创 struts2框架实现增删改查--小白教程

以药品表(drug)为例,记录一下struts2框架实现连接数据库,进行数据库的增删改查,连接数据库部分见前一篇博客使用mysql数据库,drug表结构设计如下图:增加操作struts2是基于mvc的设计模式,实现模型、视图和控制器分离,各司其职。我的设计是先将实体数据封装到实体类中(模型),通过jsp页面进行人机交互(视图),由过滤器实现控制(控制器)。模型层设计,即实体类的设计,封装实体属性,并提供get、set方法,代码如下:package struts2.model;public

2020-05-16 15:02:31 2364 1

原创 struts2框架连接MySql数据库

前几天一直在用struts2框架做项目,第一次接触框架,记录一下。目前我只做了增删改查操作 ,虽然操作简单,但是项目比较大,我的题目是病历管理系统,可想而知医院的各种病历(门诊、急诊、挂号、检验、处方、手术、护理、医嘱、入院登记,我一共用了20个表,前前后后几十个小模块),工作量也是比较大的。到现在我差不多完成了第一版的系统(增删改查部分),后续的一些细节处理我也会继续记录的(如果有时间的话),今天这部分是连接数据库。另外,本文只适合纯新手观看,如有错误,欢迎指正JDBC技术原理JDBC,全称 java

2020-05-15 23:48:01 1955

原创 使用struts2框架创建简单web项目-小白教程

从javaweb书上挑了一个最简单的框架struts2来做项目,根据书上的例子做的登陆页面。struts2框架安装过程导入struts2的类库可以从官网上下载,文件解压后将lib目录下的jar文件导入项目(直接粘贴到项目的WEB-INF的lib目录下),不需要全部导入,用哪个导入哪个,如果不知道用哪个可以解压blank的war文件下的jar。我用的是struts2-3.33版本的,所到入的...

2020-05-01 20:09:35 1216

原创 剑指offer刷题2 空格替换

问题描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。要求:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M解题思路为了减少复杂度,字符从后往前移动,首先数出空格数,将末尾的字符依次后移相应的位数,当判断到当前字符时空格时,直接补上%20,进...

2020-04-21 00:12:49 5194

原创 mysql中的varchar(n)可以存储几个汉字

varchar存储字段大小我从网上搜到的是和mysql的版本有关:4.0版本以下:varchar(n),指的是n个字节,如果存放UTF8汉字时,只能存n/3个(每个汉字3字节)。5.0版本以上:varchar(n),指的是n个字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放n个。我的mysql版本是8.0版本的,应该是可以存储n个汉字,以下是我做的能否存储的测试,...

2020-04-15 15:20:44 4227

原创 剑指offer刷题1 二维数组中的查找

题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。要求:时间限制:C/C++ 1秒,其他语言2秒;空间限制:C/C++ 32M,其他语言64M解题思路这道题就是很简单的二维数组的查找,但是注意时间限制,时间复杂度太高的也通过不了,期间我尝试了...

2020-04-12 20:20:01 216

原创 Eclipse创建web项目

选择File-New-Dynamic Web Project编译后输出文件选择:WebContent\WEB-INF\classesWebContent下新建jsp或html文件编译运行,右击Tomcat,选择add and remove,部署到Tomcat,浏览器访问即可我遇到的问题:Eclipse左边不显示项目栏,我真的找了好久都没找到,解决方法:Window-Show View-P...

2020-03-20 20:25:22 216

原创 Eclipse的简单配置问题

今天开始要做毕业设计了,然后我发现之前学的全忘了,还要在复习一遍,今天首先是软件的配置问题,我之前弄过一次,今天只是简单复习一下。安装JDK,Tomcat和Eclipse,这个直接在官网上下载安装就行Tomcat中设置环境变量JAVA-HOME为JDK所在的目录,启动Tomcat后浏览器内输入http://localhost:8080会出现Tomcat成功的页面Eclipse选择windo...

2020-03-18 00:02:09 290

原创 leetcode刷题3 无重复字符的最长子串

题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。注意题中是最长子串,而不是子序列。解题思路这道题首先我想到的是依次遍历字符串中的字符,借助一个最长子串序列,每当遍历一个新的字符时,判断他是否在当前子串中出现,如果没出现过,将他记入最长字串中,如果出现了,则放弃当前子串,从下一个字符开始找起,直到找到每个该字符串中所有字符后边跟的最长子串,选取最大值即可,但是由于此算法时间...

2020-01-31 22:51:56 433

原创 leetcode刷题2 两数相加

这里写自定义目录标题题目描述解题思路我遇到的问题报错errors源代码今天开始刷题,力扣第二题,两数相加,链表实现,很简单的一道题,但是断断续续做了几个小时,期间踩了无数的雷,估计链表里边可能遇见的问题让我碰了个遍题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返...

2020-01-14 20:43:59 225

空空如也

空空如也

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

TA关注的人

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