Leetcode
文章平均质量分 89
&后来&
记录每一个灵感的瞬间
展开
-
LeetCode题解记录-栈
20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。分析判断字符串是否有效的规则是括号能匹配上且正确顺序闭合;括号匹配有先来后匹配的顺序要求,类似于栈的存储方式,考虑用栈实现字符串中除了左括号就是右括号,遍历时遇见左括号就压入栈中对应的右括号,当出现右括号时去对比栈顶元素,相等则弹出后继续,否则无法匹配。如果遍历完成后栈为空则完全匹配,如果原创 2021-11-03 13:57:56 · 74 阅读 · 0 评论 -
Leetcode题解记录
1095. 山脉数组中查找目标值(这是一个 交互式问题 )给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。如果不存在这样的下标 index,就请返回 -1。何为山脉数组?如果数组 A 是一个山脉数组的话,那它满足如下条件:首先,A.length >= 3其次,在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] <原创 2020-09-20 16:09:44 · 79 阅读 · 0 评论 -
Leetcode题解记录-字符串
394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入输入:s = “3[a]2[bc]”输出:“aaabcbc”输入:s = “3原创 2020-09-14 17:17:40 · 192 阅读 · 0 评论 -
Leetcode题解记录-设计
146. LRU缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进原创 2020-09-10 20:54:40 · 106 阅读 · 0 评论 -
Leetcode题解记录-回溯
79. 单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 true给定 word = “SEE”, 返回 true给定 word = “ABCB”, 返回 fal原创 2020-09-08 19:58:10 · 140 阅读 · 0 评论 -
Leetcode题解记录-二叉树
257. 二叉树的所有路径给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。输入: 1 / \2 3 \ 5输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3思路:回溯的方法使用vector先存储,存完后转stringclass Solution {public: vector<string> pat原创 2020-09-04 11:33:09 · 227 阅读 · 0 评论 -
Leetcode题解记录-链表
25. K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5说明:你的算法只能使用常数的额外空间。你不能只是单纯原创 2020-09-01 14:33:28 · 371 阅读 · 0 评论 -
剑指offer题解
剑指 Offer 26. 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:输入:A = [1,2,3], B = [3,1]输出:false思路:二叉树相关首先想到递归解决,递归问题应当单独设计一个子函数,避免受一些特殊情况递归终止条件:(1)B == NULL 子树查找完成: TRUE(2)B != NULL && A == NULL: FALS原创 2020-08-29 10:29:39 · 365 阅读 · 0 评论 -
Leetcode题解记录-动态规划
32.最长有效括号给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。输入: “(()”输出: 2解释: 最长有效括号子串为 “()”输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”利用栈进行括号匹配,弹出有效括号对,剩下的即是无效括号元素思路:用栈存储元素下标,如果栈不为空,且将要插入的元素为‘)’,栈顶元素为‘(’,则将栈顶元素弹出,否则压入栈中;如果此时栈为空,直接返回总长度,代表所有括号都匹配;如果栈不为空,则依次原创 2020-08-28 10:38:30 · 367 阅读 · 0 评论