![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java面试
这里有一些我面试的时候碰到的或者刷LeetCode碰到的题
uptonhuang
这个作者很懒,什么都没留下…
展开
-
leetcode4. 寻找两个正序数组的中位数
题目 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5 解题思路 双指针法,每次比较两个数组指定位置的大小并移动指针位置 代原创 2020-09-09 15:25:17 · 1437 阅读 · 0 评论 -
leetcode3.重复字符的最长子串
题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子原创 2020-09-09 14:19:39 · 158 阅读 · 0 评论 -
字节跳动2019春招研发笔试题万万没想到之聪明的编辑
题目 我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径: 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,原创 2020-09-09 09:57:32 · 731 阅读 · 0 评论 -
leetcode77.组合(Java回溯法)
题目 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 解题 组合排列通常可以采用回溯法的方式,回溯即开始时候添加,执行完需要的步骤后再删除。 import java.util.*; class Solution { public List<List<Integer>> combin原创 2020-09-08 16:16:18 · 257 阅读 · 0 评论 -
9/6 字节笔试第二题单调栈
9/6 字节笔试第二题单调栈 题目 对于一个有 N 个元素的数组,包含如下的元素 a1,a2, …, an,我们定义了两个函数: 1、L(i) = j 需要满足的条件如下 j < i, a[j] > a[i],如果找不到j的话,L(i) = 0, 有多个 j 选择离 i 最近的 2、R(i) = k 需要满足的条件如下 k > i, a[k] > a[i],如果找不到k的话,L(k) = 0, 有多个 k 选择离 i 最近的 最后我们定义 MAX(i) = L(i) * R(i),原创 2020-09-08 09:44:31 · 147 阅读 · 0 评论 -
Java使用LinkedHashMap实现LRU缓存
Java使用LinkedHashMap实现LRU缓存LRU介绍LRU实现方式LinkedHashMap实现LRU 参加拼多多一面的时候手撕了LRU,虽然我知道经常会考LRU,但是自己一直没动手去实现,这里介绍一下LRU以及Java实现 LRU介绍 LRU可以用来当作缓存,每次访问LRU的数据之后,那个数据将变成最新的。往里面添加数据后,若容量超过自己设置的最大容量,将会删除最老的数据。即最早添加的或最长时间未使用的(注意:最早的被访问也会变成最新的) LRU实现方式 Java实现LRU一般采用链表+Hash原创 2020-09-06 20:55:22 · 1087 阅读 · 0 评论