![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客Top200
Lazy mode
简单性和模块化是软件工程的基石;分布式和容错性是互联网的生命。
当你还不能写出自己满意的程序时,你就不要去睡觉。
展开
-
合并k个已排序的链表(分治、优先队列)
package com.heu.wsq.niuke.top200;import java.util.ArrayList;import java.util.Comparator;import java.util.PriorityQueue;/** * 合并k个已排序的链表 * @author wsq * @date 2021/6/2 * 描述 * 合并k个已排序的链表并将其作为一个已排序的链表返回。分析并描述其复杂度。 * 示例1 * 输入: * [{1,2,3},{4,原创 2021-06-03 22:39:06 · 356 阅读 · 1 评论 -
在旋转过的有序数组中寻找目标值
package com.heu.wsq.niuke.top200;/** * 在旋转过的有序数组中寻找目标值 * @author wsq * @date 2021/6/1 * 描述 * 给定一个整数数组nums,按升序排序,数组中的元素各不相同。 * nums数组在传递给search函数之前,会在预先未知的某个下标 t(0 <= t <= nums.length-1)上进行旋转,让数组变为[nums[t], nums[t+1], ..., nums[nums.length-1],原创 2021-06-01 21:56:55 · 337 阅读 · 0 评论 -
最长递增子序列(动态规划+二分查找)
package com.heu.wsq.niuke.top200;/** * 最长递增子序列 * @author wsq * @date 2021/6/1 * 描述 * 给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中字典序最小的) * * 示例1 * 输入: * [2,1,5,3,6,4,8,9,7] * 返回值: * [1,3,4,8,9] * * 示例2 * 输入: * [1,2,8,6,4] * 返原创 2021-06-01 20:39:13 · 308 阅读 · 0 评论 -
链表中的节点每k个一组反转(递归,链表反转)
package com.heu.wsq.niuke.top200;/** * 链表中的节点每k个一组反转 * @author wsq * @date 2021/05/14 * * 题目描述 * 将给出的链表中的节点每k个一组翻转,返回翻转后的链表 * 如果链表中的节点数不是k的倍数,将最后剩下的节点保持原样 * 你不能更改节点中的值,只能更改节点本身。 * 要求空间复杂度 O(1) * * 例如: * 给定的链表是1→2→3→4→5 * 对于k=2, 你应该返回 2→1→4→3原创 2021-05-14 19:38:38 · 309 阅读 · 0 评论 -
TOP K问题(大顶堆、分治思想)
package com.heu.wsq.niuke.top200;import java.util.ArrayList;import java.util.Comparator;import java.util.PriorityQueue;/** * TOP K问题 * @author wsq * @date 2021/5/8 * 题目描述 * 给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组原创 2021-05-08 15:22:19 · 289 阅读 · 0 评论 -
设计LRU缓存结构
package com.heu.wsq.niuke.top200;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 设计LRU缓存结构 * @author wsq * @date 2021/5/8 * 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 * set(key, value):将记录(key, va原创 2021-05-08 14:02:09 · 95 阅读 · 0 评论 -
删除链表中倒数第N个节点(快慢双指针)
package com.heu.wsq.niuke.top200;/** * 删除链表中倒数第N个节点 * @author wsq * @date 2021/5/5 * 题目描述 * 给定一个链表,删除链表的倒数第 nn 个节点并返回链表的头指针 * 例如, * 给出的链表为: 1\to 2\to 3\to 4\to 51→2→3→4→5, n= 2n=2. * 删除了链表的倒数第 nn 个节点之后,链表变为1\to 2\to 3\to 51→2→3→5. * * 备注: * 题原创 2021-05-05 19:14:40 · 73 阅读 · 0 评论