摘要:
最小的K个数 牛客题霸NC119 难度:Medium 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 输入 [4,5,1,6,2,7,3,8],4 返回值 [1,2,3,4] 解决思路 使用一个容量为K的最大堆,程序 阅读全文
摘要:
设计LRU缓存结构 牛客题霸NC93 难度:Medium 题目描述 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值 [要求] set和get方法的时间 阅读全文
摘要:
寻找第K大 牛客题霸NC88 难度:Medium 题目描述 有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。 给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。 示例1 输入 [1,3,5,2,2],5,3 返回值 2 题目解答 利用快 阅读全文
摘要:
跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 示例1 输入 1 返回值 1 示例2 输入 4 返回值 5 解决思路 就是个斐波那契数列,代码如下: public class Solution { public 阅读全文
摘要:
实现二叉树先序中序后序遍历 牛客题霸NC45 难度:Easy 题目描述 分别按照二叉树先序,中序和后序打印所有的节点。 示例 输入 {1,2,3} 返回值 [[1,2,3],[2,1,3],[2,3,1]] 备注: n≤10^6 题目答案 import java.util.*; /* * publi 阅读全文
摘要:
合并有序链表 牛客题霸NC33 难度:Easy 题目描述 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。 输入 {1},{} 返回值 {1} 输入 {1},{1} 返回值 {1,1} 代码解决 算法入门基础题,尾插法扫描拼接即可: import java.util. 阅读全文
摘要:
求二叉树的层序遍历 牛客题霸NC15 难度:Medium 二叉树的层序遍历使用队列来实现,代码如下: import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode 阅读全文
摘要:
判断链表中是否有环 牛客题霸NC93 难度:Easy 题目描述 判断给定的链表中是否有环,你能给出空间复杂度的解法么? 题目解答 1. Set+遍历 遍历链表,将遍历的每个节点放到一个Set里。如果遍历过程中发现Set中已经存在该节点,则代表链表存在环;如果遍历到末尾,则代表链表无环。 import 阅读全文