好好刷题进大厂
好好刷题进大厂
全部文章
分类
未归档(1)
题解(20)
归档
标签
去牛客网
登录
/
注册
好好刷题进大厂的博客
全部文章
(共21篇)
题解 | #重排链表#
找到中间点,分割前后两段A、B,B进行翻转,再合并AB 时间复杂度:O(n),空间复杂度:O(1) 关于如何找中点的通用公式可以看我这篇的题解 https://blog.nowcoder.net/n/0dda181dcdbd457b9e1bfc86e797d19e /...
Java
快慢指针
找中点
反转链表
2021-11-15
2
363
题解 | #链表的奇偶重排#
双指针:时间复杂度O(n),空间复杂度O(1) 分割出两个链表出来,然后用奇链表的尾部指向偶链表的头部即可 import java.util.*; /* * public class ListNode { *&nbs...
Java
双指针
2021-11-15
0
266
题解 | #删除有序链表中重复的元素-II#
一次遍历:时间复杂度O(n),空间复杂度O(1) 思路:采用哨兵的思想,用一个常量记录重复的节点的值,直到便利到不重复节点的头上 public ListNode deleteDuplicates (ListNode head) {...
Java
计数器
2021-11-15
0
242
题解 | #链表中的节点每k个一组翻转#
1、递归:时间复杂度O(n),空间复杂度O(n/k)递归的深度 思路:双指针每一段进行反转,递归返回的每一次进行拼接 public ListNode reverseKGroup (ListNode head, int ...
Java
迭代
递归
双指针
2021-11-15
0
238
题解 | #两个链表生成相加链表#
时间复杂度:O(n),空间复杂度O(n) 思路:将链表的值分别放到两个双端队列中,从后往前加(大数加法类似) 将最后的结果拼接成新的链表; public ListNode addInList (ListNode head1...
Java
队列
2021-11-15
2
307
题解 | #单链表的排序#
1、选择排序,外层循环定位起点,默认为最小值,内层循环一直找后面比当前起点小的值进行交换 注:其实这样做是不好的做法,因为题目的意思是想涉及节点的交换而不是单纯的值交换,但是这样结果也是对的,属于取巧了 public ListNode sortInL...
Java
双指针
递归
2021-11-15
0
239
题解 | #判断一个链表是否为回文结构#
1、快慢指针:时间复杂度是O(n),空间复杂度是O(1) 思路:通过快慢指针找到中点,得到终点划分的A,B两段,将B段进行链表的反转,然后再和A段进行逐一比较; 注:快慢指针找中点的统一写法,这样写同是能找到B段的启始点的前一个位置,如果遇到需要断开A段与...
Java
双指针
2021-11-15
0
265
题解 | #两个链表的第一个公共结点#
双指针: 三种情况:(总长度分别为m,n) 1、存在公共节点: A链表未相交部分为a,相交部分为c ...
Java
双指针
2021-11-15
0
257
题解 | #链表中倒数最后k个结点#
1、快慢指针:时间复杂度是O(n),空间复杂度O(1) 思路:快指针比慢指针多走K步,当快指针走完时,慢指针正好是倒数第K个 public ListNode FindKthToTail (ListNode pHead, int&...
Java
双指针
2021-11-15
0
222
题解 | #删除有序链表中重复的元素-I#
双指针:空间复杂度O(1),时间复杂度O(n) public ListNode deleteDuplicates (ListNode head) { &nbs...
Java
双指针
2021-11-15
0
210
首页
上一页
1
2
3
下一页
末页