
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 · 1484 阅读 · 0 评论 -
leetcode3.重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子原创 2020-09-09 14:19:39 · 184 阅读 · 0 评论 -
字节跳动2019春招研发笔试题万万没想到之聪明的编辑
题目我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,原创 2020-09-09 09:57:32 · 800 阅读 · 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 · 287 阅读 · 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 · 185 阅读 · 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 · 1262 阅读 · 0 评论