Leetcode
文章平均质量分 50
五毛一个一块俩
这个作者很懒,什么都没留下…
展开
-
剑指 Offer II 039. 直方图最大矩形面积
题目描述:给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10解法: 单调栈根据木桶效应,在相邻的若干矩形中,能够构成的最大矩形的高取决于这些矩形中最矮的那个。 因此在一片相邻的矩形中,只要找到最矮的,其他矩形的高就可以不用考虑。因此可以想到(可能想不到)使用单调栈原创 2022-03-11 21:30:40 · 218 阅读 · 0 评论 -
LeetCode 剑指Offer 005 单词长度的最大乘积
题目描述:给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。输入: words = [“abcw”,“baz”,“foo”,“bar”,“fxyz”,“abcdef”]输出: 16解释: 这两个单词为 “abcw”, “fxyz”。它们不包含相同字符,且长度的乘积最大。题目很好理解,问题关键在于如何判断两个单词是否存在交集。解法:位运原创 2022-03-10 17:57:08 · 122 阅读 · 0 评论 -
LeetCode224 基本计算器
题目描述给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。给定的字符串表达式由数字、‘+’、‘-’、‘(’、‘)’、‘ ’组成。比如给定字符串"1 +1", 函数需要返回结果2。解法:双栈首先看到这个题应该会想到后缀表达式的计算过程,设置一个nums栈存放数字,遇到运算符就取nums栈顶两个元素计算,然后放回栈中。但是题目给的是一个中缀表达式,计算需要考虑优先级,因此可以增加一个ops栈来存放原创 2022-03-10 17:43:39 · 6456 阅读 · 0 评论 -
LeetCode 589 N叉树的前序遍历
题目描述给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔。输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2,4]题目很好理解,就是简单的二叉树前序遍历换成了N叉树,因此遍历方法也会分为递归和非递归方法。解法一: 递归递归解法和二叉树遍历的基本一致,按照中间,从左边到右边的顺序进行遍历,遍历。代码:class Solution {public:原创 2022-03-10 10:42:27 · 130 阅读 · 0 评论 -
LeetCode 92 反转链表II
题目描述:给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。和反转链表I相比,只是从全部反转变成只反转left到right部分。解法:和反转链表I类似,只是改为中间部分旋转,需要定义好left左侧的指针,然后通过头插法将left右边right-left+1个节点插入即可。在实现过程中,需要特别注意哑节点的使用,引入哑节点之后对头结点的处理更方便。比如给的原创 2022-03-08 22:22:57 · 143 阅读 · 0 评论 -
LeetCode2055. 蜡烛之间的盘子
题目描述给你一个长桌子,桌子上盘子和蜡烛排成一列。给你一个下标从 0 开始的字符串 s ,它只包含字符 ‘*’ 和 ‘|’ ,其中 ‘*’ 表示一个 盘子 ,’|’ 表示一支 蜡烛 。同时给你一个下标从 0 开始的二维整数数组 queries ,其中 queries[i] = [lefti, righti] 表示 子字符串 s[lefti…righti] (包含左右端点的字符)。对于每个查询,你需要找到 子字符串中 在 两支蜡烛之间 的盘子的 数目 。如果一个盘子在 子字符串中 左边和右边 都 至少有一原创 2022-03-08 17:26:07 · 175 阅读 · 0 评论 -
Leetcode160 相交链表
相交链表(简单)题目描述给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:解法一:通过计算两个链表的长度差n,将长的链表从头先移动n个指针,两个指针同时向前,直到相等,此时的指针就是第一个相交的结点。代码class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNod原创 2022-03-07 23:02:58 · 252 阅读 · 0 评论 -
Leetcode 504七进制数
Leetcode第504题: 七进制数简单题:给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。num范围是 (-10^7, 10^7)比如给定十进制数100, 转化为7进制就等于202(49+49+1+1).**解法: **参考进制转换方法, 除以7取模,直到num小于等于0.class Solution {public: string convertToBase7(int num) { if(num == 0) return "原创 2022-03-07 22:32:26 · 159 阅读 · 0 评论