题目链接
英文链接:https://leetcode.com/problems/majority-element/
中文链接:https://leetcode-cn.com/problems/majority-element/
题目详述
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
1 | 输入: [3,2,3] |
示例 2:
1 | 输入: [2,2,1,1,1,2,2] |
英文链接:https://leetcode.com/problems/majority-element/
中文链接:https://leetcode-cn.com/problems/majority-element/
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
示例 1:
1 | 输入: [3,2,3] |
示例 2:
1 | 输入: [2,2,1,1,1,2,2] |
英文链接:https://leetcode.com/problems/powx-n/
中文链接:https://leetcode-cn.com/problems/powx-n/
实现 pow(x, n) ,即计算 x 的 n 次幂函数。
示例 1:
1 | 输入: 2.00000, 10 |
示例 2:
1 | 输入: 2.10000, 3 |
示例 3:
1 | 输入: 2.00000, -2 |
说明:
英文链接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
中文链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]

示例 1:
1 | 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8 |
示例 2:
1 | 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4 |
说明:
英文链接:https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/
中文链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]

示例 1:
1 | 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1 |
示例 2:
1 | 输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4 |
说明:
英文链接:https://leetcode.com/problems/validate-binary-search-tree/
中文链接:https://leetcode-cn.com/problems/validate-binary-search-tree/
定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
示例 1:
1 | 输入: |
示例 2:
1 | 输入: |
英文链接:https://leetcode.com/problems/sliding-window-maximum/
中文链接:https://leetcode-cn.com/problems/sliding-window-maximum/
给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k 内的数字。滑动窗口每次只向右移动一位。
返回滑动窗口最大值。
示例:
1 | 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 |
注意:
你可以假设 k 总是有效的,1 ≤ k ≤ 输入数组的大小,且输入数组不为空。
进阶:
你能在线性时间复杂度内解决此题吗?
英文链接:https://leetcode.com/problems/top-k-frequent-words/
中文链接:https://leetcode-cn.com/problems/top-k-frequent-words/
给一非空的单词列表,返回前 k 个出现次数最多的单词。
返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。
示例 1:
1 | 输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2 |
示例 2:
1 | 输入: ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"], k = 4 |
注意:
扩展练习:
英文链接:https://leetcode.com/problems/kth-largest-element-in-a-stream/
中文链接:https://leetcode-cn.com/problems/kth-largest-element-in-a-stream/
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。
你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。
示例:
1 | int k = 3; |
说明:
你可以假设 nums 的长度≥ k-1 且k ≥ 1。
英文链接:https://leetcode.com/problems/implement-stack-using-queues/
中文链接:https://leetcode-cn.com/problems/implement-stack-using-queues/
使用队列实现栈的下列操作:
注意:
push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。英文链接:https://leetcode.com/problems/implement-queue-using-stacks/
中文链接:https://leetcode-cn.com/problems/implement-queue-using-stacks/
使用栈实现队列的下列操作:
示例:
1 | MyQueue queue = new MyQueue(); |
说明:
push to top, peek/pop from top, size, 和 is empty 操作是合法的。