自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重排链表

重排链表给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.思路:看示例就能看出来是头取一个,尾取一个,原谅我

2020-07-31 23:00:12 382

原创 反射机制

反射机制摘自B站的狂神学Java(?)涉及到Jvm的过两天再补上(动态语言与静态语言动态语言:是一类运行时能改变其结构的语言静态 :运行时结构不可变的语言Java不是动态语言,但是Java可以称为准动态语言,即Java有一定的动态性,可以利用反射机制获取类似动态语言的特性Java Reflecttion反射是Java被视为动态语言的关键,反射机制允许程序在执行期借助Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法Class c = Class.forN

2020-07-25 16:39:14 111

原创 注解

注解摘自b站的狂神学Java(好像叫这个(。什么是注解Annotation的作用:不是程序本身,可以对程序作出解释(类注释可以被其他程序(如编译器)读取Annotation使用场景package,class,method,field等上面,相当于给它们添加了额外的辅助信息,可以通过反射机制编程实现对这些元数据的访问内置注解@Override定义在java.lang.Override中,用于重写@Deprecated定义在java.lang.SuppressWarnings中,提示

2020-07-25 16:37:13 74

转载 Servlet

Servlet摘自:https://blog.csdn.net/qq_19782019/article/details/80292110什么是ServletServlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servl

2020-07-24 21:50:39 92

原创 复制带随机指针的链表

给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[

2020-07-24 11:59:16 315

原创 反转链表 II

反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2020-07-24 10:30:43 67

原创 分隔链表

给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5思路就是将给出的链表分成两个链表,一个全小于x,一个全大于等于x,最后将两个链表连接起来,以下ac代码:/** * Definition for singly-linked lis

2020-07-23 11:31:56 162

原创 旋转链表

给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->1->2->NU

2020-07-13 09:13:45 102

原创 两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.思路就……模拟?用了三个指针,时间O(n),空间O(1)首先考虑如何交换两个节点,假设第一个节点为node则:t = node->next //备份node的下一个节点node->next = node->next->next //让现

2020-07-10 18:39:30 82

原创 删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题意就是给出一个节点,然后让把这个节点在链表中删去,因为我们通常思维下删除一个节点都是直接让前一个指针的next指向下

2020-07-08 18:28:36 136

原创 反转链表(回溯,递归)

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。方法一:回溯假设一个链表 A -> B -

2020-07-06 16:27:49 421 1

原创 两数相加(链表)

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807来源:力扣(LeetCode)链接:https://leetcode

2020-07-06 15:48:55 139

原创 移除链表元素

删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-linked-list-elements著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。就正常的遍历思路,不过需要在前面插一个头结点,方便删除链表的第一个节

2020-07-04 18:01:03 93

原创 相交链表

编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 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)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,

2020-07-04 17:02:53 114

原创 环形链表(快慢指针)

Given a linked list, determine if it has a cycle in it.To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the li

2020-07-04 15:11:06 323

原创 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。需要注意的有三点:c

2020-07-02 21:00:17 118

原创 合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4就……还是归并(不过用c又重写了一遍/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNod

2020-07-02 19:23:39 107

原创 删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:就和剑指offer上那道返回倒数第k个节点思路一样,不过这道题的返回变成了删除,所以更复杂一点创建两个指针pq,p先走,隔n+1个节点之后q再走,之所以是n+1,是因为删除第n个节点是要

2020-07-02 16:13:49 157

原创 KMP算法(字符串匹配算法)

KMP算法(字符串匹配算法)摘自:https://blog.csdn.net/dark_cy/article/details/88698736简介该算法相对于暴力有比较大的改进,主要是消除了主串指针的回溯,从而使算法效率有了某种程度的提高。KMP算法的整体思路KMP算法的整体思路是什么样子呢?让我们来看一组例子:KMP算法和BF算法的“开局”是一样的,同样是把主串和模式串的首位对齐,从左到右对逐个字符进行比较。第一轮,模式串和主串的第一个等长子串比较,发现前5个字符都是匹配的,第6个字符

2020-07-01 18:26:27 729

空空如也

空空如也

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

TA关注的人

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