自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 剑指 Offer II 039. 直方图最大矩形面积

题目描述:给定非负整数数组 heights ,数组中的数字用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例:输入:heights = [2,1,5,6,2,3]输出:10解释:最大的矩形为图中红色区域,面积为 10解法: 单调栈根据木桶效应,在相邻的若干矩形中,能够构成的最大矩形的高取决于这些矩形中最矮的那个。 因此在一片相邻的矩形中,只要找到最矮的,其他矩形的高就可以不用考虑。因此可以想到(可能想不到)使用单调栈

2022-03-11 21:30:40 180

原创 const、const和指针的关系

constconst常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。const和#define的区别:const常量具有类型,编译器可以进行安全检查;宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。const默认作用于其左边的东西,否则作用于其右边的东西const int*const修饰右边的int,常量整型,*修饰int,指向int的指针。加起来含义是:这个指针指向一个int,int由于被const修饰,所以int对应的数字(指针所指向的内容

2022-03-10 20:35:50 128

原创 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 79

原创 LeetCode224 基本计算器

题目描述给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() 。给定的字符串表达式由数字、‘+’、‘-’、‘(’、‘)’、‘ ’组成。比如给定字符串"1 +1", 函数需要返回结果2。解法:双栈首先看到这个题应该会想到后缀表达式的计算过程,设置一个nums栈存放数字,遇到运算符就取nums栈顶两个元素计算,然后放回栈中。但是题目给的是一个中缀表达式,计算需要考虑优先级,因此可以增加一个ops栈来存放

2022-03-10 17:43:39 6371

原创 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 119

原创 LeetCode 304 二维区域和检索 - 矩阵不可变 (前缀和)

题目描述给定一个二维矩阵 matrix,以下类型的多个请求:●计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。实现 NumMatrix 类:●NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化●int sumRegion(int row1, int col1, int row2, int col2) 返回 左上角 (row1, col1) 、右下角 (row2, col2) 所描述的子

2022-03-08 22:38:00 768

原创 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 115

原创 vit-pytorch库中vision transformer部分的代码阅读

最近实验需要用到vision transformer的一些代码,之前对vit内部具体的代码实现细节还有些模糊,今天重新读了一遍代码并注释。用的代码是vit-pytorch库中的。github地址:vit-pytorch github安装方法:pip install vit-pytorch代码:class ViT(nn.Module): def __init__(self, *, image_size, patch_size, num_classes, dim, depth, head

2022-03-08 20:50:22 1590

原创 LeetCode2055. 蜡烛之间的盘子

题目描述给你一个长桌子,桌子上盘子和蜡烛排成一列。给你一个下标从 0 开始的字符串 s ,它只包含字符 ‘*’ 和 ‘|’ ,其中 ‘*’ 表示一个 盘子 ,’|’ 表示一支 蜡烛 。同时给你一个下标从 0 开始的二维整数数组 queries ,其中 queries[i] = [lefti, righti] 表示 子字符串 s[lefti…righti] (包含左右端点的字符)。对于每个查询,你需要找到 子字符串中 在 两支蜡烛之间 的盘子的 数目 。如果一个盘子在 子字符串中 左边和右边 都 至少有一

2022-03-08 17:26:07 123

原创 Leetcode160 相交链表

相交链表(简单)题目描述给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交:解法一:通过计算两个链表的长度差n,将长的链表从头先移动n个指针,两个指针同时向前,直到相等,此时的指针就是第一个相交的结点。代码class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNod

2022-03-07 23:02:58 203

原创 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 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除