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 · 115 阅读 · 0 评论 -
描述外观数组
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:111211211111221来源:力扣原创 2021-10-15 21:28:13 · 146 阅读 · 0 评论 -
LRU算法实现
1、描述实现一个lru缓存机制算法。查询复杂度O(1),删除添加复杂度也是O(1)题目描述2、关键字lru3、思路使用一个hash表,把当前的键,和键+值,搞成一个哈希映射表,然后通过链表的方式把历史数据存起来。使用头插法,维护最近使用的元素在链表头。4、notes把链表,双向链表的定义分离,代码结构清晰。5、复杂度时间O(1)空间O(1)6、code struct Node{ // 直接双向链表 int key; int val;原创 2021-08-04 14:08:37 · 192 阅读 · 0 评论 -
跳水板001
1、描述16.11难度简单20你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法,生成跳水板所有可能的长度。返回的长度需要从小到大排列。示例:输入:shorter = 1longer = 2k = 3输出: {3,4,5,6}提示:0 < shorter <= longer0 <= k <= 100000来源:力扣(LeetCode)链接:https:原创 2020-07-08 21:16:31 · 134 阅读 · 0 评论 -
矩阵中战斗力最弱的 K 行
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示。请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序。如果第 i 行的军人数量少于第 j 行,或者两行军人数量相同但 i 小于 j,那么我们认为第 i 行的战斗力比第 j 行弱。军人 总是 排在一行中的靠前位置,也就是说 1 总是出现在 0 之前。来源:力扣(LeetCode)链接:https://leetcode原创 2021-08-01 11:42:58 · 182 阅读 · 0 评论 -
笨阶乘
文章目录1、描述2、关键字3、思路4、notes5、复杂度6、code1、描述通常,正整数 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 · 102 阅读 · 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 0class Solution {public: vector<vector<原创 2021-03-16 15:44:47 · 105 阅读 · 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 · 206 阅读 · 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 · 198 阅读 · 0 评论 -
判断子序列
#1、描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。...原创 2020-03-24 22:05:02 · 242 阅读 · 0 评论 -
数组区域和检索
#1、描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说...原创 2020-03-24 21:04:45 · 314 阅读 · 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 · 86 阅读 · 0 评论 -
回文数
#1、判断给定的一个数字是否是回文数#2、解题思路 负数不是回文数,数字末尾是0时候,只有数字本身是0才是回文数,不然就不是 把数字截成两段,当原始数字小于新生成的数字的时候就正好从中间截断了(如果是奇位数,新生成的多一位)#3、Notes: 截断的手法#4、codeclassSolution{public:boolisPa...原创 2020-03-21 20:55:15 · 281 阅读 · 0 评论 -
数组最小K个数
堆,快排other 输出数组前边几个最小的数#1输入 arry [] , k输出 k 个数解法一#2 思路: :排序、统计、输出#3 Notes1、vector中使用sort时候是sort(arr.begin () , arr.end() )#4 code#5 时间复杂度 NlogN 空间复杂度logN classSol...原创 2020-03-20 11:23:25 · 214 阅读 · 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 · 114 阅读 · 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 · 446 阅读 · 0 评论 -
合并两个有序数组
给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。初始化 A 和 B 的元素数量分别为 m 和 n。示例:输入:A = [1,2,3,8,0,0,0], m = 4B = [2,5,6], n = 3输出: [1,2,2,3,5,6,8]迭代器故障,说是数组越界,不求甚解class So...原创 2020-03-03 10:16:51 · 271 阅读 · 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 · 92 阅读 · 0 评论