![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
快乐划水程序猿
记录点滴成长
展开
-
LRU go实现
思路用列表实现,有head和tail为什么需要tail?为什么node节点需要key?当get值的时候,用map查找找不到返回-1能找到将node调整到表头当put值的时候如果key已经存在则需要更新val,同时将node调整到表头如果key不存在则新建node,将其调整到表头代码package mainimport "fmt"type LRUCache struct { cap int num int head *LRUMem原创 2022-05-05 20:36:22 · 362 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-70》23.合并K个升序链表
1.题目给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https原创 2020-10-14 12:22:49 · 213 阅读 · 2 评论 -
[Kick Start 2020] Round F 1. ATM Queue
好题目,为自己的蜜汁自信感到羞愧,这个题目陷入了自己写cmp错误发现不了的大坑[Kick Start 2020] Round F 1.ATM Queue1. 题目ProblemThere are N people numbered from 1 to N, standing in a queue to withdraw money from an ATM. The queue is formed in ascending order of their number. The person numbe原创 2020-09-27 14:59:04 · 214 阅读 · 3 评论 -
Leetcode C++ 《第204场周赛》
前几天再看go语法的时候,发现自己忘记的差不多了,用go刷题的难度又增加了,想学什么还是一鼓作气比较好啦!这个月的周赛竟然都搞上了,每轮至少2个题目,还算不错hh,虽然因为各种原因没有按时间进行竞赛code~today is also a beautiful day~1.题目11.1问题给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。 模式由其长度和重复次数定义。如果数组中存在原创 2020-08-30 17:10:37 · 148 阅读 · 0 评论 -
Leetcode C++ 《第203场周赛》
1.题目11.1问题给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从 rounds[0] 开始,到 rounds[1] 结束。请你以数组形式返回经过次数最多的那几个扇区,按扇区编号 升序 排列。注意,赛道按扇区编号升序逆时针形成一个圆(请参见第一个示原创 2020-08-25 09:37:04 · 161 阅读 · 0 评论 -
Leetcode C++ 《第202场周赛》
1.题目11.1问题给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。示例 1:输入:arr = [2,6,4,1]输出:false解释:不存在连续三个元素都是奇数的情况。示例 2:输入:arr = [1,2,34,3,4,5,7,23,12]输出:true解释:存在连续三个元素都是奇数的情况,即 [5,7,23] 。提示:1 <= arr.length <= 10001 <= ar原创 2020-08-16 16:10:22 · 267 阅读 · 1 评论 -
Leetcode C++ 《第201场周赛》
周末因为有事木有参加周赛,不影响做两个题目看看水平;其实更应该把之前的坑补上,比如go的学习,然后用go刷题!1. 题目11.1 问题给你一个由大小写英文字母组成的字符串 s 。一个整理好的字符串中,两个相邻字符 s[i] 和 s[i + 1] 不会同时满足下述条件:0 <= i <= s.length - 2s[i] 是小写字符,但 s[i + 1] 是相同的大写字符;反之亦然 。请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好原创 2020-08-11 17:08:20 · 184 阅读 · 0 评论 -
Leetcode C++ 《第200场周赛》
还是因为enjoy做周赛的感觉,就像是定期锻炼注意力一样~一扫近日的浮躁1. 题目11.1 问题给你一个整数数组 arr ,以及 a、b 、c 三个整数。请你统计其中好三元组的数量。如果三元组 (arr[i], arr[j], arr[k]) 满足下列全部条件,则认为它是一个 好三元组 。0 <= i < j < k < arr.length|arr[i] - arr[j]| <= a|arr[j] - arr[k]| <= b|arr[i] - arr[原创 2020-08-02 14:09:39 · 236 阅读 · 0 评论 -
Leetcode C++ 《第199场周赛》
做周赛的时候,注意力很集中哈哈,enjoy这个感觉,木有浮躁~做完之后看大佬写的代码,惊叹且学习了新思路和方法,很开森~1. 题目11.1 问题https://leetcode-cn.com/contest/weekly-contest-199/problems/shuffle-string/给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。输入:s = “co原创 2020-07-26 12:57:45 · 303 阅读 · 0 评论 -
Leetcode C++ 《第198场周赛-2》 1519. 子树中标签相同的节点数
好久没做题目了,感觉战斗力下降不少,不过有点弯弯绕绕的题目整出来还是很有成就感的~该学习新东西啦,脚踏实地,总会离我的星辰更进一步~题目给你一棵树(即,一个连通的无环无向图),这棵树由编号从 0 到 n - 1 的 n 个节点组成,且恰好有 n - 1 条 edges 。树的根节点为节点 0 ,树上的每一个节点都有一个标签,也就是字符串 labels 中的一个小写字符(编号为 i 的 节点的标签就是 labels[i] )边数组 edges 以 edges[i] = [ai, bi] 的形式给出,原创 2020-07-24 11:23:20 · 214 阅读 · 0 评论 -
Leetcode C++《每日一题》20200707 112. 路径总和
题目给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->原创 2020-07-07 12:36:50 · 177 阅读 · 0 评论 -
Leetcode C++ 剑指 Offer 09. 用两个栈实现队列
这可能是一道我10年都不会忘记的题目,因为有人给我讲了两遍我没懂,那天一定是没吃饱,大脑缺氧!题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1原创 2020-07-01 21:52:01 · 339 阅读 · 0 评论 -
Leetcode 《Go和C++两兄弟》 20200627 41. 缺失的第一个正数
Go写的第一道leetcode,我感觉很????骄傲哇~题目缺失的第一个正数给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。思路把每个元素放到自己的位置上,比如1放在index=0的位置,已经处理过的元素值改为-1时间复杂度是n,空间复杂度是原创 2020-06-27 20:49:52 · 154 阅读 · 0 评论 -
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
Leetcode C++ 《拓扑排序-1》20200626 207.课程表题目你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。原创 2020-06-26 14:58:47 · 272 阅读 · 0 评论 -
Leetcode C++《每日一题》20200626 338. 比特位计数
Leetcode C++《每日一题》20200626 338. 比特位计数1. 题目给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要求算法的空间复杂度为O(n)。你能进一步完善解法吗原创 2020-06-26 13:27:13 · 212 阅读 · 0 评论 -
Leetcode C++《每日一题》20200625 139. 单词拆分
Leetcode C++《每日一题》20200625 139. 单词拆分1. 题目给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。原创 2020-06-26 12:26:24 · 292 阅读 · 0 评论 -
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配1. 题目你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a",“go"是"b”),该字符串也匹配像"a"、"ab"和"b"这样的模式。但需注意"a"和"b"不能同时表示相同的字符串。编写一个方法判断value字符串是否匹配pattern字符串。示例 1:输入: p原创 2020-06-22 18:42:15 · 320 阅读 · 0 评论 -
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和1. 题目给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-maximum-path-sum著作权归领扣网络所有原创 2020-06-21 14:25:07 · 223 阅读 · 0 评论 -
Leetcode C++ 随手刷 547.朋友圈
题目班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:输入:[[1,1,0],[1,1,0],[0,0,1]]输出: 2说明:已知学生0和学生1原创 2020-06-20 22:03:08 · 338 阅读 · 0 评论 -
牛客网题目1:最大数
感觉做题思路还是会有一些混乱,理清思路且写代码要细心~继续多做题!!!题目给定一个包含大写英文字母和数字的句子,找出这个句子所包含的最大的十六进制整数,返回这个整数的值。数据保证该整数在int表示范围内~https://www.nowcoder.com/questionTerminal/ac72e27f34c94856bf62b19f949b8f36思路找到符合要求的子串,将其转换成十六进制,更新其代表的十六进制的最大值符合要求的子串:首字母不能为0,只能是0-9或者A-F时间复杂度O(n原创 2020-06-12 21:04:36 · 542 阅读 · 0 评论 -
Leetcode C++ 《第181场周赛-2》 1390. 四因数
Leetcode C++ 《第181场周赛-2》 1390. 四因数1. 题目给你一个整数数组 nums,请你返回该数组中恰有四个因数的这些整数的各因数之和。如果数组中不存在满足题意的整数,则返回 0 。示例:输入:nums = [21,4,7]输出:32解释:21 有 4 个因数:1, 3, 7, 214 有 3 个因数:1, 2, 47 有 2 个因数:1, 7答案仅为 ...原创 2020-03-23 21:17:30 · 222 阅读 · 0 评论 -
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组
Leetcode C++ 《第181场周赛-1》 5364. 按既定顺序创建目标数组1. 题目给你两个整数数组 nums 和 index。你需要按照以下规则创建目标数组:目标数组 target 最初为空。按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组中的下标 index[i] 处插入值 nums[i] 。重复上一步,直到在 nums 和 index...原创 2020-03-22 19:07:19 · 240 阅读 · 0 评论 -
[Kick Start 2020] Round A 2.Plates
[Kick Start 2020] Round A 2.Plates1. 题目ProblemDr. Patel has N stacks of plates. Each stack contains K plates. Each plate has a positive beauty value, describing how beautiful it looks.Dr. Patel wo...原创 2020-03-22 18:40:27 · 534 阅读 · 0 评论 -
[Kick Start 2020] Round A 1.Allocation
[Kick Start 2020] Round A 1.Allocation1. 题目ProblemThere are N houses for sale. The i-th house costs Ai dollars to buy. You have a budget of B dollars to spend.What is the maximum number of houses ...原创 2020-03-22 18:34:56 · 453 阅读 · 3 评论 -
Leetcode C++ 《第22场双周赛-1》 5348.两个数组间的距离值
Leetcode C++ 《第22场双周赛-1》 5348.两个数组间的距离值1. 题目给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。「距离值」 定义为符合此描述的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i]-arr2[j]| <= d 。示例 1:输入:arr1 = [4,5,8], ...原创 2020-03-22 09:54:50 · 250 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-69》647. 回文子串
Leetcode C++《热题 Hot 100-69》647. 回文子串题目思路代码class Solution {public: int countSubstrings(string s) { int n = s.length(); bool** dp = new bool* [n]; int res = 0; for (...原创 2020-03-17 19:45:08 · 204 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-68》337. 打家劫舍 III
Leetcode C++《热题 Hot 100-68》337. 打家劫舍 III题目思路代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x)...原创 2020-03-17 19:42:48 · 168 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-67》279. 完全平方数
Leetcode C++《热题 Hot 100-67》279. 完全平方数题目思路代码class Solution {public: int numSquares(int n) { //动态规划问题 dp[i] = min (dp[i], dp[i-j*j]+1) int dp[n+1]; dp[0] = 0; ...原创 2020-03-17 19:39:16 · 152 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-66》309. 最佳买卖股票时机含冷冻期
Leetcode C++《热题 Hot 100-66》309. 最佳买卖股票时机含冷冻期题目思路代码class Solution {public: int maxProfit(vector<int>& prices) { // int n = prices.size(); if (n == 0) ...原创 2020-03-17 19:38:03 · 162 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-65》207. 课程表
Leetcode C++《热题 Hot 100-65》207. 课程表题目思路代码class Solution {public: bool canFinish(int numCourses, vector<vector<int>>& prerequisites) { //拓扑排序,用出入度方法容易理解hh,熟悉的配方 ...原创 2020-03-17 19:32:28 · 238 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-64》142. 环形链表 II
Leetcode C++《热题 Hot 100-64》142. 环形链表 II题目思路代码/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}...原创 2020-03-17 19:27:47 · 344 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-63》394. 字符串解码
Leetcode C++《热题 Hot 100-63》394. 字符串解码题目思路代码class Solution {public: vector<int> numsV; string decodeString(string s) { if (s.length() == 0) return ""; s...原创 2020-03-17 19:24:13 · 193 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-62》621. 任务调度器
Leetcode C++《热题 Hot 100-62》621. 任务调度器题目思路代码class Solution {public: int leastInterval(vector<char>& tasks, int n) { //只有26种任务到是 vector<int> taskTimes; ...原创 2020-03-17 19:16:48 · 174 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-61》200. 岛屿数量
Leetcode C++《热题 Hot 100-61》200. 岛屿数量题目思路代码class Solution {public: int n; int m; int numIslands(vector<vector<char>>& grid) { n = grid.size(); if (n =...原创 2020-03-17 19:10:43 · 211 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-60》146. LRU缓存机制
Leetcode C++《热题 Hot 100-60》146. LRU缓存机制题目思路代码class LRUCache {public: //map+链表 //有一个容量上线,如果超过上线,就把链表头删掉 //如果get一次,就找到这个链表点,把它加到末尾 list<pair<int, int>> datas; int ...原创 2020-03-17 14:07:25 · 114 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-59》416. 分割等和子集
Leetcode C++《热题 Hot 100-59》416. 分割等和子集题目思路代码class Solution {public: bool canPartition(vector<int>& nums) { //综合等于sum,选择一些数的和使得它等于sum/2 //dp[i][j] 关键是状态转移方程 ...原创 2020-03-17 14:01:04 · 113 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-58》560. 和为K的子数组
Leetcode C++《热题 Hot 100-58》560. 和为K的子数组题目思路代码class Solution {public: int subarraySum(vector<int>& nums, int k) { //和为k的连续子数组的个数,经典的思路啊! //元素范围1000,数组长度20000,最大1000...原创 2020-03-17 13:04:39 · 186 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-57》139. 单词拆分
Leetcode C++《热题 Hot 100-57》139. 单词拆分题目思路代码class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { //其实就是wordDict里面的单词多次组合,能不能组合成s //dp[i][j] 表...原创 2020-03-17 12:58:04 · 142 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-56》300. 最长上升子序列
Leetcode C++《热题 Hot 100-56》300. 最长上升子序列题目给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。...原创 2020-03-17 12:55:14 · 158 阅读 · 0 评论 -
Leetcode C++《热题 Hot 100-55》494. 目标和
Leetcode C++《热题 Hot 100-55》494. 目标和题目思路代码class Solution {public: int findTargetSumWays(vector<int>& nums, int S) { //动态规划简单,就是每一个数前面有两个选择,要么加要么减去 //数组长度不会超过20,数组的和...原创 2020-03-17 12:47:46 · 116 阅读 · 0 评论