2020年8月26日

链表中环的入口结点

摘要: 题目描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 分析: 这题我们可以采用双指针解法,一快一慢指针。快指针每次走两步,慢指针每次走一步。如果存在一个圈,总有一天,快指针是能追上慢指针的。 如下图所示,我们先找到快慢指针相遇的点 p,我们再假设,环的入口在点 q,从 阅读全文

posted @ 2020-08-26 18:30 _那些你很冒险的梦 阅读(85) 评论(0) 推荐(0)

2020年8月25日

孩子们的游戏(圆圈中最后剩下的数)

摘要: 题目描述:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任 阅读全文

posted @ 2020-08-25 20:40 _那些你很冒险的梦 阅读(146) 评论(0) 推荐(0)

两个链表的第一个公共节点

摘要: 题目描述:输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 分析:双指针法。创建两个指针 p1 和 p2,分别指向两个链表的头结点,然后依次往后遍历。如果某个指针到达末尾,则将该指针指向另一个链表的头结点;如果两个指针 阅读全文

posted @ 2020-08-25 19:53 _那些你很冒险的梦 阅读(86) 评论(0) 推荐(0)

2020年8月24日

复杂链表的复制

摘要: 题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) PS:与牛客相同! 代码: 阅读全文

posted @ 2020-08-24 21:46 _那些你很冒险的梦 阅读(71) 评论(0) 推荐(0)

反转链表

摘要: 题目描述:输入一个链表,反转链表后,输出新链表的表头。 思路: 1. 题目所给的是单链表,想了一下反转后的样子:最后一个结点指向倒数第二个,倒数第二个指向倒数第三个,......,第二个指向第一个,第一个指向null; 2. 知道了反转后各个结点指向哪之后,就需要开始调整每个结点的next指针。 3 阅读全文

posted @ 2020-08-24 21:08 _那些你很冒险的梦 阅读(88) 评论(0) 推荐(0)

2020年8月23日

链表中倒数第 K 个节点

摘要: 题目描述:输入一个链表,输出该链表中倒数第 K 个节点。 分析:快慢(双)指针!过程如下: 1. 快指针先向右移动 K 位,此时 index(fast) — index(slow) = K; 2. 快指针和慢指针一起向右移动,当快指针位 none 的时候,慢指针走到了倒数第 K 个节点。 PS:与牛 阅读全文

posted @ 2020-08-23 13:59 _那些你很冒险的梦 阅读(64) 评论(0) 推荐(0)

从尾到头打印链表

摘要: 题目描述:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 分析:listNode 是链表,只能从头遍历到尾,但是输出却要求从尾到头,这是典型的"先进后出",我们可以想到栈! PS:与牛客相同! 代码: 阅读全文

posted @ 2020-08-23 13:29 _那些你很冒险的梦 阅读(65) 评论(0) 推荐(0)

2020年8月22日

数组中重复的数字

摘要: 题目描述:在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为 7 的数组 {2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字 2。 分 阅读全文

posted @ 2020-08-22 21:54 _那些你很冒险的梦 阅读(89) 评论(0) 推荐(0)

和为S的两个数字

摘要: 题目描述:输入一个递增排序的数组和一个数字 S,在数组中查找两个数,使得它们的和正好是 S,如果有多对数字的和等于 S,输出两个数的乘积最小的。 分析:最外层的乘积最小,别被题目误导! PS:与牛客相同! 程序: 阅读全文

posted @ 2020-08-22 21:33 _那些你很冒险的梦 阅读(95) 评论(0) 推荐(0)

数字在排序数组中出现的次数

摘要: 题目描述:统计一个数字在升序数组中出现的次数。 分析:这题里有一个重点,那就是 排序 ,我们就可以立马联想到二分法求解,这样我们的速度就会变成O(nlogn)。所以这题分三步: 二分法找出任何一个等于k的数组元素,记录下他的index 根据这个index向前查找所有等于k的元素数量 根据这个inde 阅读全文

posted @ 2020-08-22 20:36 _那些你很冒险的梦 阅读(274) 评论(0) 推荐(0)

导航