自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SSM框架整合

SSM框架整合—Spring+SpringMVC+Mybatis+Shiro—教务查询系统说明功能介绍正式开始项目说明本项目适用于ssm开发新手,从配置到开发全过程详解功能介绍教务查询系统一共有三种角色:管理员,学生和老师,不同角色登录的界面与功能都不相同登录界面管理员界面管理员可以进行课程管理,学生管理,教师管理,以及账户密码的重置教师显示界面教师可以查看所授课程,给学生打分以及修改密码学生显示界面 ;学生可以查看所有课程列表,进行选课、退课操作,查看已选课程,

2020-12-03 09:52:38 305

原创 String直接赋值和new String的区别

String直接赋值和new String的区别1、首先讲讲String在java中的特点1、String表示字符串类型,属于引用数据类型,不属于基本数据类型。2、在java中随便使用双引号括起来的都是string对象。例如: " abc”, “def”, "hello world! “,这是3个String对象。3、java中规定,双引号括起来的字符串,是不可变的,也就是说"abc"自出生到最终死亡,不可变,不能变成"abcd”,也不能4、在JDK当中双引号括起来的字符串,例如 : “abc”"d

2021-08-07 14:14:56 1368 1

原创 LeetCode306——累加数(回溯算法)

LeetCode306——累加数(回溯算法)首先要知道回溯算法的一般套路为://添加路径track.add(路径);//进入下一个决策树backTrack();//撤销选择track.remove(路径);它是一种暴力穷举的算法,在此基础上,进行剪支以降低回溯的次数。下面来看一道算法题。LeetCode306判断一个字符串是否为累加数,意思很明确,但是难点在于如何找到第一个数和第二个数,只要找到这两个数,一直加下去看是不是等于后面那个数就完了,只要有一次不相等,就需要重新确定第一个

2021-05-27 10:06:35 229

原创 一期关于数组、链表、字符串去重(双指针)

去重twoSum 3sum 4sum双指针

2021-05-21 10:16:57 193

原创 字符串的排列——滑动窗口

LeetCode5671. 思路一:自己想的方法采用哈希表记录s1中有的字符以及数量,双指针遍历s2,如果哈希表中有right指向的元素,把哈希表中的数量-1,并将right后移,判断right与left中间的长度是否与s1一致,若一致就可以返回true了。这里会出现两种特殊情况,一种是哈希表中没有right指向的元素,那里这里需要将left移到right+1的位置,并且把原先减去的值都加回来。第二种是right指向的元素出现的次数已经大于应有的次数,也就是哈希对应的value小于0了,这时候需要把

2021-05-16 12:37:57 160

原创 爱吃香蕉的珂珂,包裹运输问题——二分查找的变形

LeetCode875题目表述:题目的意思是,珂珂一小时最多能吃完一堆,如果吃完了还有时间,她也不会再吃了。因此最小速度的最大值正是数组中的最大数,最小值是1。class Solution { public int minEatingSpeed(int[] piles, int h) { //1.找到一堆中的最大值 int max = 0; for(int number : piles){ max = Math.max(

2021-05-16 10:36:18 154

原创 二分算法总结(遇事不决,先写模板)

先上个最基础的二分查找:LeetCode704 public int search(int[] nums, int target) { if(nums.length == 0) return -1; int left = 0; int right = nums.length -1; while(left <= right){ //搜索区间是[left,right],闭区间 int mid = left

2021-05-16 10:15:57 112

原创 判断链表是否有环,找环的起点(双指针)

判断链表是否有环,找环的起点(双指针)LeetCode141题目描述:一般的单链表是没有环的,也就是说链表的尾节点指向null,而环形链表一直追溯next可以遍历到相同的值,且没有节点的next指向null。判断链表是否有环可以采用双指针方法,定义一个慢指针slow和一个快指针fast,慢指针每次走一步,快指针每次走两步,那么快指针如果和慢指针相遇了就说明链表有环。public class Solution { public boolean hasCycle(ListNode head)

2021-05-12 14:19:14 718 1

原创 回文链表(双指针法)

回文链表(双指针法)LeetCode234题目描述:这道题很容易想到一种方法:将整条链表反转和原先的链表进行比较,如果每个节点都一样,说明这个链表是回文链表。但是事先需要对原链表进行复制操作。下面介绍一种快慢指针的方法,定义一个快指针和一个慢指针,快指针每次走两步,慢指针每次走一步,当快指针走到链表尾部的时候,慢指针就来到了链表的中心。注意链表长度是奇数和偶数存在不同的情况,如下图链表长度为偶数,则快指针为空时,慢指针到达中心位置:而链表长度为奇数时,快指针的下一个节点为空时,慢指针来到中心位

2021-05-12 10:14:04 224

原创 删除链表的倒数第 N 个结点(双指针)

删除链表的倒数第 N 个结点LeetCode19题目描述:要做的有两件事:一找到要删除的节点,二让这个节点的前面一个节点指向要删除节点的后一个节点1. 三指针法这个方法是自己想的有点繁琐。定义三个指针,一个记录要删除的节点,一个记录待删除节点的前一个节点,最后一个用于遍历。对头节点要另外做处理。class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if(head.next ==

2021-05-11 21:49:28 197

原创 不含有重复字符的 最长子串 的长度(滑动窗口)

不含有重复字符的 最长子串 的长度(滑动窗口法)LeetCode3题目描述:“最长子串”,令人很容易想到滑动窗口,而“不含有重复字符”则可以借助哈希表,因此本题思路为滑动窗口+哈希表实现。定义pre和next指针,表示滑动窗口的起始位置和终止位置,用一个ans变量来维护窗口的最小长度。建立一个哈希map,如果表内不含next指向的元素,则将它加入到map中,next后移,继续检查下一个元素,如果表内含有next指向的元素,则先将头元素移出,令头指针pre后移一位,循环判断。class Solut

2021-05-11 11:51:46 267

原创 长度最小的子数组——滑动窗口法

长度最小的子数组——滑动窗口法LeetCode209题目描述:注意题目说的是连续的子数组,所以这道题最简单的做法应该是滑动窗口,时间复杂度O(n),空间复杂度O(1)。定义左右指针分别为left和right表示窗口的起始位置和终止位置,初始都指向0,并用sum变量记录当前滑动窗口所有元素之和,minNum表示滑动窗口的最小长度。left指针先不动,将right指针后移并更新sum的值,若sum>=target,则更新minNum的值,并且此时将sum减去left指向的值,将left后移,直到s

2021-05-11 11:10:17 187

原创 反转单链表:递归和迭代

反转单链表LeetCode92单链表的结构为:// 单链表节点的结构public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}1. 迭代实现法这里用一张人家画好的图,思想是定义三个节点pre、nxt、cur,cur节点表示当前的节点,nxt记录院链表中cur的下一个节点,pre初始化为null,首先让头节点指向pre,cur和pre都向后移动一位,接着让cur一直指向pr

2021-05-10 21:26:15 206

原创 旋转数组找中位数的下标

题目描述:比如一个原数组[1,3,5,7,9,10,13]以任意一个数比如7作旋转操作得到一个新数组[7,9,10,13,1,3,5]要求得到原数组的中位数的下标注:题目中只知道旋转后的数组,不知道原数组,例如输入[5,1,3],输出2如果数组长度为偶数,例如[3,5,7,1],则选择3或者5作为中位数都可以要求用O(n)的方式实现。面试中提供了一种思路:一是用快排先进行排序,再找中位数,时间复杂度是nlogn。然而要求用O(n)思路:中位数的特点是左边的数都比中位数小,而右边的数都比中位

2021-01-16 10:08:11 1423 10

原创 如何将本地代码托管到github

代码托管到github步骤本地安装git在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!安装完成后,还需要最后一步设置,在命令行输入:$ git config --global user.name "Your Name"$ git config --global user.email "email@example.com"

2020-12-03 10:30:13 444

空空如也

空空如也

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

TA关注的人

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