1.8k 2 分钟

# 题目 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(nlog⁡n)O(n \log n)O(nlogn) , n 是数组的大小。 题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。 你可以按任意顺序返回答案。 347. 前 K 个高频元素 -...
1.8k 2 分钟

# 题目 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 进阶: 你能在线性时间复杂度内解决此题吗? 给你一个整数数组 nums ,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置...
1.6k 1 分钟

# 题目 根据 逆波兰表示法,求表达式的值。 有效的运算符包括 + , - , * , / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入: ["2", "1", "+", "3", "*"] 输出: 9 解释:该算式转化为常见的中缀算术表达式为:((2 + 1) *...
848 1 分钟

# 题目 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca" 输出:"ca" 解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串...
961 1 分钟

# 题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "(){}" 输出: true 示例 3: 输入: "(]" 输出:...
2.9k 3 分钟

# 题目 使用栈实现队列的下列操作: push (x) -- 将一个元素放入队列的尾部。 pop () -- 从队列首部移除元素。 peek () -- 返回队列首部的元素。 empty () -- 返回队列是否为空。 示例: MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false说明: 你只能使用标准的栈操作 -- 也就是只有 push to top, peek/pop from top,...
647 1 分钟

# 题目 459. 重复的子字符串 - 力扣(LeetCode) 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过 10000。 示例 1: 输入: "abab" 输出: True 解释:可由子字符串 "ab" 重复两次构成。 示例 2: 输入: "aba" 输出: False 示例 3: 输入: "abcabcabcabc" 输出: True 解释:可由子字符串...
2.8k 3 分钟

# kmp 讲解 代码随想录 (programmercarl.com) 当我们需要在一个字符串中查找另一个字符串的出现位置时,常常会使用 KMP 算法,因为它在时间复杂度上具有优势。接下来,我将详细讲解 KMP 算法的原理和步骤。 假设我们需要在文本串 S 中查找模式串 P 的出现位置。 预处理模式串 P: 首先,我们需要构建一个部分匹配表(Partial Match Table),它记录了模式串 P...
1.3k 1 分钟

# 题目 给定一个字符串,逐个翻转字符串中的每个单词。 示例 1: 输入: "the sky is blue" 输出:"blue is sky the" 示例 2: 输入: "hello world!" 输出:"world! hello" 解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。 示例 3: 输入: "a good example" 输出:"example...
698 1 分钟

# 题目 请实现一个函数,把字符串 s 中的每个空格替换成 "%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 剑指 Offer 05. 替换空格 - 力扣(LeetCode) # 分析 空格换成‘%20’,一个字符变成 3...