Java面试题
埋头苦干小唐同学
这个作者很懒,什么都没留下…
展开
-
LRU算法实现
题目描述 题目描述 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的value值 [要求] set和get方法的时间复杂度为O(1) 某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。 当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。 若opt=1,接下来两个整数x, y,表示set(x, y) 若opt=2,接下来原创 2020-09-19 16:21:04 · 347 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 值得注意的是我们接收的参数是链表的第一个节点,我们也可以看到链表的定义。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { publi原创 2020-09-04 23:46:52 · 114 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
题目描述 剑指 Offer 05. 替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 题目背景 在网络编程中,如果URL的参数中有特殊字符,比如空格或者“ # ”等,则可能导致服务器端无法获得正确的参数值。我们需要将这些特殊符号转换成服务器可以识别的字符。转换的规则是在“%”之后跟上ASCII码的两位十六进制表示。 我的方法 正向循环字符串,如果遇到空格则append“%20”,如果不是空格就append字符串中的字符。 代码如下: class Solution { publ原创 2020-08-22 18:20:25 · 251 阅读 · 0 评论 -
剑指offer面试题01
简介 做一下面试的准备,开始搞一下算法题,把剑指offer的题都搞一下 题目 1.数组中重复的数字 offer.03 找出数组中重复的数字 题目描述: 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 我的想法 我自己是这样想的,利用set中的值只能存在一个,再次添加时返回false的特性,找到重复的数字,代码如下: class Solution { pub原创 2020-08-07 21:23:37 · 200 阅读 · 0 评论 -
Java集合部分面试题解答
Java集合面试题 1.Collection和Collections的区别 Collection是集合类的上级接口,继承与他有关的接口主要有List和Set Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全等操作 2.Comparable 和 Comparator 接口是干什么的?列出它们的区别 Comparable 是排序接口。 若一个类实现了Comparable接口,就意味着“该类支持排序”。 即然实现Comparable接口的类支持排序,假设现原创 2020-06-27 18:36:54 · 276 阅读 · 0 评论