面试题
文章平均质量分 91
努力成就未来
生命不止!奋斗不息!
展开
-
java集合要点摘录以及面试题
集合(容器):是一种工具类,就像是容器,储存任意数量的具有共同属性的对象集合和数组的区别:数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。java中集合类主要有两大分支:Collection 和 Map集合的基础知识:(结构等等)这里就不说了,大家自...原创 2018-10-31 22:16:58 · 268 阅读 · 0 评论 -
求两个有序数组合并后第K大值-leetcode
两个有序数组从小到大排列,取两个数组合并后第K大的元素,要求O(1)空间复杂度 如 a = {0, 1, 2, 4} b = {3, 5, 7} 第4大元素,返回3 方法一: 不考虑复杂度的情况下,首先想到的方法是一次从两个数组中选取较小的那个, 直到选取第k个,此种方法复杂度在O(k),代码如下 方法二: 基于k/2位数的二分思想 方法三...原创 2019-03-28 17:59:36 · 2292 阅读 · 1 评论 -
实现了min方法的栈
package com.banban.CeShi;import java.util.Stack;/** * 定义一个实现了min方法的栈,min方法返回当前栈最小元素。要求min,push,pop时间复杂度O(1) * 方法一: * 双栈实现:minstack栈存储最小值 * */public class MinStack { private Stac...原创 2019-03-28 18:09:18 · 353 阅读 · 0 评论 -
LRU缓存思想
package com.banban.CeShi;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map;import java.util.Stack;/** * 实现一个长度为n的LRU缓存,即超出长度后,丢弃最少被使用的元素 * 方法一: * 使...原创 2019-03-28 18:12:59 · 231 阅读 · 0 评论 -
两个线程交叉打印,一个打印数字,一个打印小写字母,结果为a1b2...y25z26
package com.banban.CeShi;/** * 两个线程交叉打印,一个打印数字,一个打印小写字母,结果为a1b2...y25z26 * */public class ThreadPrint { private static Object lock = new Object(); private Thread th1 = new Thread(){...原创 2019-03-28 18:14:48 · 1789 阅读 · 3 评论