
practice
文章平均质量分 55
做做题
answer_yym
且随疾风前行
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
相对名次对应金牌
1、描述 给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。 运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况: 名次第 1 的运动员获金牌 “Gold Medal” 。 名次第 2 的运动员获银牌 “Silver Medal” 。 名次第 3 的运动员获铜牌 “Bronze Medal” 。 从名次第 4 到第 n 的运动员,只能获得他原创 2021-12-02 15:24:38 · 160 阅读 · 0 评论 -
描述外观数组
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code 1、描述 给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1) = “1” countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。 前五项如下: 1 11 21 1211 111221 来源:力扣原创 2021-10-15 21:28:13 · 196 阅读 · 0 评论 -
LRU算法实现
1、描述 实现一个lru缓存机制算法。 查询复杂度O(1),删除添加复杂度也是O(1) 题目描述 2、关键字 lru 3、思路 使用一个hash表,把当前的键,和键+值,搞成一个哈希映射表,然后通过链表的方式把历史数据存起来。使用头插法,维护最近使用的元素在链表头。 4、notes 把链表,双向链表的定义分离,代码结构清晰。 5、复杂度 时间O(1) 空间O(1) 6、code struct Node{ // 直接双向链表 int key; int val;原创 2021-08-04 14:08:37 · 241 阅读 · 0 评论 -
跳水板001
1、描述 16.11难度简单20你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。 返回的长度需要从小到大排列。 示例: 输入: shorter = 1 longer = 2 k = 3 输出: {3,4,5,6} 提示: 0 < shorter <= longer 0 <= k <= 100000 来源:力扣(LeetCode) 链接:https:原创 2020-07-08 21:16:31 · 168 阅读 · 0 评论 -
矩阵中战斗力最弱的 K 行
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code 1、描述 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。 如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。 军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。 来源:力扣(LeetCode) 链接:https://leetcode原创 2021-08-01 11:42:58 · 226 阅读 · 0 评论 -
笨阶乘
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code 1、描述 通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。 相反,我们设计了一个笨阶乘 clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。 例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 /原创 2021-04-01 09:43:42 · 140 阅读 · 0 评论 -
方阵解螺旋002
1、描述 59给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 题目链接 姊妹篇 2、关键字 矩阵复原 3、思路 模拟 4、notes 拷贝昨天的代码 5、复杂度 时间O(N平方) 空间O(N平方) 6、code #define right 1 #define down 2 #define left 3 #define up 0 class Solution { public: vector<vector<原创 2021-03-16 15:44:47 · 143 阅读 · 0 评论 -
矩阵螺旋遍历001
1、描述 54给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。遍历 2、关键字 矩阵。遍历 3、思路 二维数组遍历,设计一个标记,记录是否遍历过了 然后贪吃蛇一样搞一个蛇头,按当前方向前行,遇到边界就变向 使用宏定义方式更方便阅读 变向时候的边界细节处理,先遍历到边界外,再退回来,换到下一个方向 4、notes 可使用宏定义。 while循环内if-else使用 else if可以不写同一行也行。 5、复杂度 时间:O(NM) 空间:O(NM) 6、code原创 2021-03-15 11:31:14 · 265 阅读 · 0 评论 -
三维立方表面积
#1、892. 三维形体的表面积难度简单85在 N * N 的网格上,我们放置一些 1 * 1 * 1 的立方体。 每个值 v = grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。 请你返回最终形体的表面积。 示例 1: 输入:[[2]] 输出:10 示例 2: 输入:[[1,2],[3,4]] 输出:34 来源:力扣(LeetCode) 链接:ht...原创 2020-03-25 16:54:23 · 243 阅读 · 0 评论 -
判断子序列
#1、描述 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。...原创 2020-03-24 22:05:02 · 275 阅读 · 0 评论 -
数组区域和检索
#1、描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange(0, 5) -> -3 说...原创 2020-03-24 21:04:45 · 365 阅读 · 0 评论 -
给定数组使唯一的最小增量
#1 描述 945 给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。 返回使 A 中的每个值都是唯一的最少操作次数。 示例 1: 输入:[1,2,2] 输出:1 解释:经过一次 move 操作,数组将变为 [1, 2, 3]。 示例 2: 输入:[3,2,1,2,1,7] 输出:6 解释:经过 6 次 move 操作,数组将变为 [3, 4, ...原创 2020-03-22 13:52:44 · 114 阅读 · 0 评论 -
回文数
#1、判断给定的一个数字是否是回文数 #2、解题思路 负数不是回文数,数字末尾是0时候,只有数字本身是0才是回文数,不然就不是 把数字截成两段,当原始数字小于新生成的数字的时候就正好从中间截断了(如果是奇位数,新生成的多一位) #3、Notes: 截断的手法 #4、code classSolution{ public: boolisPa...原创 2020-03-21 20:55:15 · 342 阅读 · 0 评论 -
数组最小K个数
堆,快排 other 输出数组前边几个最小的数 #1输入 arry [] , k 输出 k 个数 解法一 #2 思路: :排序、统计、输出 #3 Notes 1、vector中使用sort时候是sort(arr.begin () , arr.end() ) #4 code #5 时间复杂度 NlogN 空间复杂度logN classSol...原创 2020-03-20 11:23:25 · 247 阅读 · 0 评论 -
一串数的众数
解法:1 排序取中 note1: sort函数: sort(nums.begin(),snms.end()); classSolution{ public: intmajorityElement(vector<int>&nums){ sort(nums.begin(),nums.end()); return...原创 2020-03-13 11:01:55 · 146 阅读 · 0 评论 -
求两个字符串的最大公共子串
求两个字符串的最大公共字串,ABCABC ABC 输出是ABC. 方法:辗转相乘法,gcd,两个串相加,A+B=B+A就有最大字串,如果不等就不相等,相等之后求两个串长度的最大公约数。 字符串截取:str1.substr(0,8);从第0个开始,截取8个字符 classSolution{ public: intgcd(inta,intb) ...原创 2020-03-12 23:25:34 · 493 阅读 · 0 评论 -
合并两个有序数组
给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。 初始化 A 和 B 的元素数量分别为 m 和 n。 示例: 输入: A = [1,2,3,8,0,0,0], m = 4 B = [2,5,6], n = 3 输出: [1,2,2,3,5,6,8] 迭代器故障,说是数组越界,不求甚解 class So...原创 2020-03-03 10:16:51 · 330 阅读 · 0 评论 -
最
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 //1暴力, 就是直接遍历两边就好了 class Solution { public: int maxSubArray(vector...原创 2020-02-29 17:04:11 · 108 阅读 · 0 评论