力扣
文章平均质量分 60
力扣练习题
小米内推官_AngelDg
我们总以为,是生活欠我们一个“满意”,其实是我们欠生活一个“努力”。
展开
-
[每日一题]127:出现频率最高的前 K 个元素(LeetCode:前 K 个高频元素)
文章目录题目描述题解思路相关测试题题目描述有一个不为空且仅包含正整数的数组,找出其中出现频率最高的前 K 个数,时间复杂度必须在 O(n log n) 以内。行数据包括两部分,一个正整数数组(数字间 ‘,’ 分隔)和一个正整数 K (1 ≤ K ≤ 数组长度),数组和 K 之间有一个空格。输出包含前 K 个出现频率最高的数(出现频率相同时,较小的数在前),用 ', ’ 分隔,保证升序排列。示例 1:输入:1,1,1,2,2,3 2输出:1,2题解思路首先遍历整个数组,并使用哈希表记录每原创 2021-04-06 14:29:45 · 1410 阅读 · 0 评论 -
[每日一题]22:只出现一次的数字(题目汇总解答)
题目一描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1题解代码class Solution {public: int singleNumber(vector<int>& nums) ...原创 2020-03-29 10:03:08 · 264 阅读 · 0 评论 -
[每日一题]104:合并两个有序数组
文章目录题目描述题解思路:题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,原创 2020-12-04 20:48:58 · 191 阅读 · 0 评论 -
[每日一题]94:可被三整除的最大和
题目描述给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。示例 1:输入:nums = [3,6,5,1,8]输出:18解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。示例 2:输入:nums = [4]输出:0解释:4 不能被 3 整除,所以无法选出数字,返回 0。示例 3:输入:nums = [1,2,3,4,4]输出:12解释:选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。提示:1原创 2020-08-21 14:03:40 · 307 阅读 · 0 评论 -
[每日一题]90:亲密字符串
题目描述给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。示例 1:输入: A = "ab", B = "ba"输出: true示例 2:输入: A = "ab", B = "ab"输出: false示例 3:输入: A = "aa", B = "aa"输出: true示例 4:输入: A = "aaaaaaabc", B = "aaaaaaacb"输出: true示例原创 2020-08-17 20:05:27 · 154 阅读 · 0 评论 -
[每日一题]87:移掉K位数字(小米OJ - 9)
题目描述给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = "1432219", k = 3输出: "1219"解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = "10200", k = 1输出: "200"解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前原创 2020-08-16 22:54:27 · 223 阅读 · 0 评论 -
[每日一题]86:实现 Trie (前缀树)
题目描述实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"); // 返回 truetrie.insert("app"); trie.search("app原创 2020-08-16 18:13:20 · 133 阅读 · 0 评论 -
[每日一题]85:有效的括号
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true代码解答:c原创 2020-08-13 22:33:40 · 176 阅读 · 0 评论 -
[每日一题]84:检测大写字母
题目描述给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: False注意: 输入是由大写和小写拉丁字母组成的非空单词。题解代码class Soluti原创 2020-08-11 10:55:57 · 288 阅读 · 0 评论 -
[每日一题]43:前K个高频单词
题目描述给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: ["i", "love", "leetcode", "i", "love", "coding"], k = 2输出: ["i", "love"]解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。 注...原创 2020-04-22 19:00:41 · 411 阅读 · 0 评论 -
[每日一题]37:N叉树的层序遍历
题目描述给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个 3叉树 :返回其层序遍历:[ [1], [3,2,4], [5,6]]说明:树的深度不会超过 1000。树的节点总数不会超过 5000。解答代码/*// Definition for a Node.class Node {public: ...原创 2020-04-09 21:53:32 · 194 阅读 · 0 评论 -
[每日一题]36:在每个树行中找最大值
题目描述您需要在二叉树的每一行中找到最大的值。示例:输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9]解答代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * Tree...原创 2020-04-09 21:21:58 · 188 阅读 · 0 评论 -
[每日一题]34:二叉树的层平均值
题目描述给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例 1:输入: 3 / \ 9 20 / \ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].注意:节点值的范围在32位有符号整数范围内。解答代码:/** * De...原创 2020-04-09 14:56:54 · 157 阅读 · 0 评论 -
[每日一题]32:二叉树的后序遍历
题目描述给定一个二叉树,返回它的 后序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗?递归算法解答代码/** * Definition for a binary tree node. * struct TreeNode { * int...原创 2020-04-09 00:21:16 · 213 阅读 · 0 评论 -
[每日一题]31:二叉树的中序遍历
题目描述给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗?递归算法解答代码:/** * Definition for a binary tree node. * struct TreeNode { * int v...原创 2020-04-08 20:02:12 · 191 阅读 · 0 评论 -
[每日一题]30:二叉树的前序遍历
题目描述给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗?递归算法代码解答/** * Definition for a binary tree node. * struct TreeNode { * int ...原创 2020-04-08 17:32:18 · 210 阅读 · 0 评论 -
[每日一题]29:逆波兰表达式求值
题目描述根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9示例 ...原创 2020-04-08 10:14:02 · 234 阅读 · 0 评论 -
[每日一题]25:用队列实现栈
题目描述:使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者...原创 2020-04-07 18:42:32 · 273 阅读 · 0 评论 -
[每日一题]24:数组中的第K个最大元素
题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。暴力法演示代码:class Solution {public: int findKthLargest(...原创 2020-04-07 17:56:26 · 157 阅读 · 0 评论 -
[每日一题]23:电话号码的字母组合
题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。解题思路hash+DFS...原创 2020-03-31 10:17:28 · 265 阅读 · 0 评论 -
[每日一题]21:杨辉三角
题目描述给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出: [1], [1,1], [1,2,1], [1,3,3,1],[1,4,6,4,1]题解代码class Solution {public: vector<vector<int>...原创 2020-03-28 20:35:19 · 720 阅读 · 0 评论 -
[每日一题]20:字符串相乘与相加
题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不...原创 2020-03-24 23:04:49 · 213 阅读 · 0 评论 -
[每日一题]19:反转字符串多题汇总
文章目录反转字符串反转字符串中的元音字母反转字符串 II反转字符串中的单词 III反转字符串题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“...原创 2020-03-23 18:57:00 · 219 阅读 · 0 评论 -
[每日一题]18:验证回文串
题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: false思路:从字符串开头与末端同时便利字符串先判断字符串这个位置的字符是不是字母和...原创 2020-03-23 14:03:02 · 237 阅读 · 0 评论 -
[每日一题]5:反转字符串
题目1:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。C代码如下:int OneCountBinary(unsigned int n){ int count = 0; while(n){ if (n & 1){ ++count; } n = n >> 1; } return count;...原创 2020-02-18 18:31:57 · 225 阅读 · 0 评论