自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (8)
  • 收藏
  • 关注

原创 Floyd判圈算法

求环的起点假设环长为Lfast = a + b + f * L (f 为fast指针走过的圈数)slow = a + b + s * L----> fast - slow = (f - s) * L∵ fast = 2 * slow∴ slow = fast - slow = (f - s) * L = a + b + s * L∴ a + b一定是L的整数倍假设此时slow回到起点,fast从相遇点出发。那么这两个这时候的距离差就是L的整数倍,最后fast走过c段距离后,slow走

2020-10-30 19:41:03 118

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

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-so.

2020-10-29 20:05:34 105

原创 445. 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7来源:力扣(LeetCode)链接:https://leet.

2020-10-29 11:54:14 109

原创 92. 反转链表 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-10-28 19:24:23 77

原创 203. 移除链表元素

删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5这道题和剑指offer第18题类似,但是比剑指offer题目要难一点,多一个的难点就是删除的元素可能存在多个,那么就不能再删除之后立马break,并且在一开始左剑指offer 18题的时候,有个地方没有完善,导致之后直接挪到203题的时候,就不能得出正确结果。那就是在找到一个目标节点之后,还执.

2020-10-27 13:59:11 176

原创 剑指 Offer 18. 删除链表的节点

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该.

2020-10-27 13:32:17 46

原创 206. 反转链表

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

2020-10-27 11:33:17 67

原创 108. 将有序数组转换为二叉搜索树

这道题要明白一点的就是,构造高度平衡二叉树,也就间接的说要以数组中心元素为root节点,然后依次在左右儿子中添加节点。明白这一点之后,还需要一点就是,框定左树和右树的节点范围,用两个指针就行了。class Solution { public TreeNode sortedArrayToBST(int[] nums) { return BST(nums, 0, nums.length - 1); } public TreeNode BST(int[] nums, i.

2020-10-26 17:01:58 58

原创 669. 修剪二叉搜索树

这道题逻辑上要明白一点,那就是如果某个节点的值小于low,可以直接把该节点和左儿子抹掉;如果大于high,直接抹掉该root节点。下面是我自己写的代码,思路很清晰,但是不够简洁class Solution { int low = 0; int high = 0; public TreeNode trimBST(TreeNode root, int low, int high) { this.low = low; this.high = high.

2020-10-26 15:47:31 82

原创 450. 删除二叉搜索树中的节点

思考问题的时候一定要跳出之前的思维圈,一旦出错,就会一直困在里面!!!!删除二叉搜索树,在学数据结构的时候用C语言手敲了一遍。现在用Java来实现,发现毫无头绪!!!于是又在回忆之前的思路,结果越想越乱。然后完全抛弃之前的想法,开始独立思考。随便指定实例中的一个节点的时候,就发现了三种情况,俺就是这个节点可能含有左右儿子中的一个,或者两个都有,或者根本就没有儿子节点。那么对于不同的情况就要有不同的应对方式。对于树的形状的改变,有两种方法。第一种方法是,直接将有儿子替换当前节点,然后将当前节点的左儿.

2020-10-23 12:06:39 70

原创 543. 二叉树的直径

遇到二叉树遍历,那就是以前的老规矩,遍历只分两种——DFS和BFS,而DFS的遍历顺序要视情况而定。像这道题,要找最长路径,那么转换一下思路——两点确定一条直线,也就是要找连着最多的节点的路径。那么把三种遍历顺序放进去看,就能推出这要使用后序遍历。那么打出框架class Solution { public int diameterOfBinaryTree(TreeNode root) { dfs(root); } public int dfs(TreeNode r.

2020-10-19 21:29:00 105

原创 124. 二叉树中的最大路径和

树的遍历一定要用最特殊的情况来推导遍历方式。首先这道题要返回最大路径和,实例1已经很明显了的提示用后序遍历了。而且遍历一定要以最后的节点来作推导,不要用中间的节点来做推导。既然确定了用后序遍历,剩下的就只剩用在后序遍历代码中去添加相应的条件了。class Solution { public int maxPathSum(TreeNode root) { PathFind(root) } public int PathFind(TreeNode root.

2020-10-18 09:02:08 164

原创 222. 完全二叉树的节点个数

这道题前一种思路就是遍历每个节点,毫无疑问就是BFS和DFS了,这两种解法不看因为比较简单。另一种思路就是二分查找,如何查找?利用完全二叉树的性质。如果最后一层没有填满,那么只要遍历一半的子树,然后递归。如图所示完全二叉树,在root处,算出了左右节点的数量,那么直接算出左半子树的数量,然后递归算右半子树。下面用了一个语法糖,1<<left,和pow(2,left)是一样的道理。由于计组的东西忘了很多,一直以为是left左移一位,然后一直想不通=_= 。其实是1左移left位。class.

2020-10-17 14:53:08 97

原创 110. 平衡二叉树

开始想这道题的时候,想着使用bfs,然后遍历层数,通过每层节点数量和预期的数量的差距来找。按道理应该可以实现,但是实现的逻辑难度太大,遂放弃。然后看答案,看完发现是一个典型的DFS,只不过有点变种,首先找到叶子节点,然后当前返回0,然后最后通过判断如果left-right的绝对值大于1直接返回-1,如果小于等于1,那么就在结果上加1class Solution { public boolean isBalanced(TreeNode root) { return find(ro.

2020-10-17 08:37:31 82

原创 199. 二叉树的右视图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xErDYJ9k-1602816897480)(evernotecid://634D4913-C39A-4E76-BF68-A12CE0243626/appyinxiangcom/28638727/ENResource/p103)]这道题和116.填充每个节点的下一个右侧节点指针这道题是一模一样。这里就总结一下。两道题的一个关键点都是要遍历到树的每一层的最后一个节点。而116题还要寻找的一个节点就是每一层的第一个节点。那么如

2020-10-16 10:55:09 65

原创 438. 找到字符串中所有字母异位词

给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。不考虑答案输出的顺序。示例 1:输入:s: “cbaebabacd” p: “abc”输出:[0, 6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的字母异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的字母.

2020-10-13 10:07:53 73

原创 209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。 进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)

2020-10-13 10:06:27 56

原创 34. 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]来源:力扣(LeetCode)链接:ht.

2020-10-09 21:36:01 158

原创 33. 搜索旋转排序数组

假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例.

2020-10-08 09:31:40 91

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

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。迭代解法这道题很基础,不难,需要明白的就是背后的逻辑,.

2020-10-07 20:22:22 85

原创 iptables配置信息被误删了解决方法

今天手贱,不小心把/etc/sysconfig/iptables这个文件删了。。。。然后启动不了一直报这个错Job for iptables.service failed because the control process exited with error code. See "systemctl status iptables.service" and "journalctl -xe" for details.然后自己瞎搞就搞出来了=-=首先开放端口,...

2020-10-05 21:19:37 1430

原创 阿里云死活连接不上mysql

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:YES)网上大部分教程都试过,死活都是这个错误,防火墙关了,阿里云控制台加了3306端口,还是连不上。我快气疯了,最后把mysql端口换成3307,控制台加上3307,连通了,真坑...

2020-10-03 10:01:14 411

空空如也

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

TA关注的人

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