
面试题
文章平均质量分 52
moomhxy
你若是天才,我便是疯子
展开
-
LeetCode 216周赛题解
这场比赛题目比较简单,真*手速场B题读错题意wa了一发,改了就过了。D题手滑运行点成提交了也wa了一发,,还好改了都过了。 5605. 检查两个字符串数组是否相等 题意: 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。 思路: string直接连接起来比较就ok了。 Code: class Solution { public: bool array原创 2020-11-22 22:57:41 · 751 阅读 · 0 评论 -
LeetCode 1115. 交替打印FooBar【互斥量、条件变量】
1115. 交替打印FooBar 题意: 我们提供一个类: class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } } } 两个不同的线程将会共用一个 FooBar 实例。其中一个原创 2020-11-07 23:46:27 · 327 阅读 · 0 评论 -
LeetCode 1114.按序打印【多线程互斥量】
1114. 按序打印 题意: 我们提供了一个类: public class Foo { public void first() { print(“first”); } public void second() { print(“second”); } public void third() { print(“third”); } } 三个不同的线程将会共用一个 Foo 实例。 线程 A 将会调用 first() 方法 线程 B 将会调用 second() 方法 线程 C 将会调用 third() 方法 请原创 2020-11-07 23:44:25 · 344 阅读 · 0 评论 -
LeetCode 1114.按序打印【互斥量】
1114. 按序打印 题意: 我们提供了一个类: public class Foo { public void first() { print(“first”); } public void second() { print(“second”); } public void third() { print(“third”); } } 三个不同的线程将会共用一个 Foo 实例。 线程 A 将会调用 first() 方法 线程 B 将会调用 second() 方法 线程 C 将会调用 third() 方法 请原创 2020-11-02 22:09:53 · 376 阅读 · 0 评论 -
LeetCode 213周赛题解
A-1640. 能否连接形成数组 题意: 给你一个整数数组 arr ,数组中的每个整数 互不相同 。另有一个由整数数组构成的数组 pieces,其中的整数也 互不相同 。请你以 任意顺序 连接 pieces 中的数组以形成 arr 。但是,不允许 对每个数组 pieces[i] 中的整数重新排序。 如果可以连接 pieces 中的数组形成 arr ,返回 true ;否则,返回 false 。 思路: 由于每个数字都不相同,所以我们只要看每个子数组在arr中是否连续出现即可。 Code: class原创 2020-11-02 14:44:44 · 1202 阅读 · 0 评论 -
leetcode 寻找两个正序数组的中位数
题意: 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 思路: 首先假设两个数组大小分别为n和m,如果(n + m)为奇数的话我们需要找到第(n + m + 1) / 2个元素;如果(n + m)为偶数的话我们需要找到第(n + m) / 2 和 (n + m) / 2 + 1个元素,现在我们定义一个函数来找到两个数组中第k大的原创 2020-11-02 14:43:21 · 190 阅读 · 0 评论 -
LeetCode215. 数组中的第K个最大元素
题意: 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 思路: 利用快排来完成这个操作,对于某次快排操作后我们可以得到一个下标p,小于p的都位于p的左边,大于p的都位于p的右边。如果p==k,说明正好是我们要寻找的数,返回即可。如果p<k,那么我们就再对右数组进行快排操作。 代码: class Solution { public: int slove(vector<int>& nums, in原创 2020-11-02 14:41:48 · 172 阅读 · 0 评论 -
牛客NC93-设计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,接下来一个整数x,原创 2020-08-31 22:09:05 · 303 阅读 · 0 评论