自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (5)
  • 收藏
  • 关注

原创 Leetcode刷题:剑指offer【面试题31 栈的压入、弹出序列】

文章目录思路 1:遍历【面试题31 栈的压入、弹出序列】难度: 中等输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。Leetcode题目对应位置: 面试题31:栈的压入、弹出序列思路 1:遍历按照 pushed 列表元素顺序进行入栈,每次入栈后判断当前栈顶元

2020-05-28 15:17:55 249

原创 Leetcode刷题:剑指offer【面试题30 包含min函数的栈】

文章目录【面试题30 包含min函数的栈】难度: 简单定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。Leetcode题目对应位置: 面试题30:包含min函数的栈关键问题在于获取栈中当前最小值,可以利用辅助栈来实现。设置两个栈:stack1 和 stack2,stack1 用于完成入栈、出栈、获取栈顶元素功能,stack2 用于完成获取当前栈中最小值的功能。入栈:元素入栈 stack1,此时若

2020-05-27 09:35:33 175

原创 Leetcode刷题:剑指offer【面试题29 顺时针打印矩阵】

文章目录思路 1:遍历思路 2:旋转矩阵【面试题29 顺时针打印矩阵】难度: 简单输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。Leetcode题目对应位置: 面试题29:顺时针打印矩阵思路 1:遍历设置 4 个边界:top,bottom,left,right,用以限制当前遍历的最大范围。遍历顺序按照:从左到右,从上到下,从右到左,从下到上的顺序。时间复杂度:O(mn),m 和 n 分别为矩阵的行数和列数空间复杂度:O(1),存储新的遍历顺序class Solution:

2020-05-26 09:17:51 236

原创 Leetcode刷题:剑指offer【面试题28 对称的二叉树】

文章目录思路 1:递归【面试题28 对称的二叉树】难度: 简单请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。Leetcode题目对应位置: 面试题28:对称的二叉树思路 1:递归将二叉树左右翻转之后,同一层节点的匹配关系是由内向外匹配,也就是最左节点的匹配对象是最右节点,也就是让 left.left 与 right.right 进行匹配,让 left.right 与 right.left 进行匹配。可以根据这个规律自顶向下递归,判断对应节点是否相同

2020-05-25 09:23:17 228 1

原创 Leetcode刷题:剑指offer【面试题27 二叉树的镜像】

文章目录思路 1:递归思路 2:非递归【面试题27 二叉树的镜像】难度: 简单请完成一个函数,输入一个二叉树,该函数输出它的镜像。Leetcode题目对应位置: 面试题27:二叉树的镜像思路 1:递归常规思路就是递归解法啦。(1)确定递归边界:root = null;(2)对每个 root 的操作:交换 root.left 和 root.right;(3)递归向下交换左右子树根节点即可。时间复杂度:O(n),n 为二叉树节点数量空间复杂度:O(n),最差情况下二叉树退化为链表,需要 O(n)

2020-05-24 10:38:52 217

原创 Leetcode刷题:剑指offer【面试题26 树的子结构】

文章目录思路:递归【面试题26 树的子结构】难度: 中等输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。B 是 A 的子结构, 即 A 中有出现和 B 相同的结构和节点值。约定空树不是任意一个树的子结构。Leetcode题目对应位置: 面试题26:树的子结构思路:递归基本思路:B 如果为 A 的子结构,只可能发生在 A 树某个等于 B 树根节点的节点上。所以第一步就是遍历 A 树,找到等于 B 树根节点的节点,然后以此节点为出发向下判断是否和 B 的结构一致。先序遍历 A 树并寻

2020-05-23 14:07:22 276

原创 Leetcode刷题:剑指offer【面试题25 合并两个排序的链表】

文章目录思路:双指针【面试题25 合并两个排序的链表】难度: 简单输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。Leetcode题目对应位置: 面试题25:合并两个排序的链表思路:双指针如果题目要求不能改变原本的两个链表,就需要另开空间和指针来构造新链表。初始化: head 指针指向 l1 和 l2 链表头节点中较小的一个循环过程: 比较 l1 和 l2 当前节点的大小,将较小的加入新链表循环结束条件: 当遍历到 l1 或 l2 链表尾时,循环结束,将剩余的节点

2020-05-23 10:28:07 229

原创 Leetcode刷题:剑指offer【面试题24 反转链表】

文章目录思路 1:双指针【面试题24 反转链表】难度: 简单定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。Leetcode题目对应位置: 面试题24:反转链表思路 1:双指针维护两个指针 i,j,和 head 共三个指针共同完成链表反转。三个指针的站位:head -> i -> j,循环将 i.next 指向 head,然后 head = i,i = j,j = j.next,也就是依次右移一位,直到 i 为空。初始化状态:i = head.next,j

2020-05-22 14:42:15 242

原创 Leetcode刷题:剑指offer【面试题23 链表中环的入口节点】

文章目录思路:双指针【面试题23 链表中环的入口节点】如果一个链表中包含环,如何找出环的入口节点?思路:双指针第1步: 确定链表中环包含几个节点,假设是 m 个第2步: 用双指针法,前一个指针先走 m 步,然后两个指针一起以同样的步长向前移动,当前面的指针绕着环走了一圈回到环的入口节点时,后面的指针也恰好指向入口节点。对于特殊情况的处理:1)如果链表中有可能并不存在环,那么就需要先判断是否有环,若无环则输出 None2)对于只有一个节点的情况,可能有环(自己指向自己)也可能无环,也需要考虑进

2020-05-22 10:57:35 274

原创 Leetcode刷题:剑指offer【面试题22 链表中倒数第k个节点】

文章目录思路:双指针【面试题22 链表中倒数第k个节点】难度: 简单输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。Leetcode题目对应位置: 面试题22:链表中倒数第k个节点思路:双指针常规解法是先遍历一遍单链表,求得链表长度,此时就能得到倒数第 k 个节点位置。再次遍历单链表,从计算出的输出位置进行打印即

2020-05-19 17:52:00 193

原创 Leetcode刷题:剑指offer【面试题21 调整数组顺序使奇数位于偶数前面】

文章目录思路 1:常规循环思路 2:交换奇偶数扩展:同类问题解法【面试题21 调整数组顺序使奇数位于偶数前面】难度: 简单输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。Leetcode题目对应位置: 面试题21:调整数组顺序使奇数位于偶数前面思路 1:常规循环不考虑时间复杂度,最简单的思路就是从头到尾扫描数组,每碰到一个偶数就取出,把该数后面所有的数字往前挪动一位,然后在最后补上这个偶数。由于需要从头到尾扫描数组,且每次碰到偶

2020-05-18 16:47:29 409

原创 Leetcode刷题:剑指offer【面试题20 表示数值的字符串】

文章目录确定有限自动机DFA【面试题20 表示数值的字符串】难度: 中等请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、“±5”、"-1E-16"及"12e+5.4"都不是。Leetcode题目对应位置: 面试题20:表示数值的字符串这道题实际上意思是,包含数值的字符串必须有以下模式:A.BeC 或 A.BEC,其中 A、B、C都不是必要的。A

2020-05-17 10:50:21 234

原创 Leetcode刷题:剑指offer【面试题19 正则表达式匹配】

文章目录思路 1:递归【面试题19 正则表达式匹配】难度: 困难请实现一个函数用来匹配包含 '.' 和 '*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串 "aaa" 与模式 "a.a" 和 "ab*ac*a" 匹配,但与 "aa.a" 和 "ab*a" 均不匹配。Leetcode题目对应位置: 面试题19:正则表达式匹配思路 1:递归特殊值处理: 当 p 为空时,若 s

2020-05-16 17:11:06 165

原创 Leetcode刷题:剑指offer【面试题18 删除链表的节点】

文章目录思路 1:双指针思路 2:单指针剑指 offer 原题:要求 O(1)【面试题18 删除链表的节点】难度: 简单说明: 题目保证链表中节点的值互不相同给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。Leetcode题目对应位置: 面试题18:删除链表的节点思路 1:双指针删除单链表节点分 3 种情况:删除第一个节点,即头节点,此时直接将 head 指向链表第二个节点即可删除最后一个节点,此时链表倒数第二个节点指向 null删除中间节

2020-05-15 19:05:20 350

原创 Leetcode刷题:剑指offer【面试题17 打印从1到最大的n位数】

文章目录思路 1:字符串表达大数【面试题17 打印从1到最大的n位数】难度: 简单输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。Leetcode题目对应位置: 面试题17:打印从1到最大的n位数陷阱: 包含大数问题,即如果 n 很大,很可能会出现溢出,所以不能用循环直接求最大的数字然后循环打印。(这道题就不用Python写了,因为考的是大数处理)思路 1:字符串表达大数用字符串表示数字:每个字符都是‘0’ ~

2020-05-15 10:30:08 324

原创 Leetcode刷题:剑指offer【面试题16 数值的整数次方】

文章目录思路 1:循环相乘思路 2:快速幂【面试题16 数值的整数次方】难度: 中等实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。Leetcode题目对应位置: 面试题16:数值的整数次方思路 1:循环相乘最直接的思路应该就是 base 循环相乘,这样做时间复杂度为 O(n)。思路 2:快速幂时间复杂度:O(log2n)O(log_2n)O(log2​n)...

2020-05-13 16:24:23 1581 3

原创 Leetcode刷题:剑指offer【面试题15 二进制中1的个数】

文章目录思路 1:自身移位思路 2:辅助移位思路 3:使用n&(n−1)【面试题15 二进制中1的个数】难度: 简单考察: 位运算请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。Leetcode题目对应位置: 面试题15:二进制中1的个数思路 1:自身移位判断所给二进制数最右边第一位是否为 1,若是 1 则计数器加 1;接着将二进制数整体右移一位,此时再判断右边第一位是否为

2020-05-12 15:43:21 196

原创 Leetcode刷题:剑指offer【面试题14 剪绳子】

文章目录思路 1:动态规划思路 2:贪婪算法【面试题14 剪绳子】难度: 中等限制: 2 <= n <= 58给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]*k[1]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。Leetcode题目对应位置: 面试题14:剪绳子典型的动态

2020-05-11 15:57:00 226

原创 Leetcode刷题:剑指offer【面试题13 机器人的运动范围】

文章目录思路 1: 深度优先搜索思路 2: 广度优先搜索【面试题13 机器人的运动范围】难度: 中等地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子

2020-05-10 13:57:11 235

原创 Leetcode刷题:剑指offer【面试题12 矩阵中的路径】

文章目录思路 1:回溯法【面试题12 矩阵中的路径】难度: 中等请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,"b",“c”,“e”],[“s”,"f","c",“s”],[“a”,“d”,"e",“e”]]但矩阵中不包含字符串“

2020-05-09 19:39:34 317

原创 Leetcode刷题:剑指offer【面试题11 旋转数组的最小数字】

文章目录方法 1方法 2【面试题11 旋转数组的最小数字】难度: 简单把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。Leetcode题目对应位置: 面试题11:旋转数组的最小数字最直观的思路就是从头到尾遍历数组,但是时间复杂度为 O(n),且没有利用好旋转数组的特性。方法 1只要是题目要求在 排序或部分排序 的数组中查找一

2020-05-08 19:50:31 239

原创 Leetcode刷题:剑指offer【面试题10-2 青蛙跳台阶问题】

文章目录思路1:动态规划【面试题10-1 青蛙跳台阶问题】难度: 简单限制: 0 <= n <= 100一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。Leetcode题目对应位置: 面试题10-2:青蛙跳台阶问题思路1:...

2020-05-07 23:52:53 337

原创 COCO数据集标注 & 代码

在 COCO 官方数据集里,train 的数据集标注有 6 个 .json 文件,captions 打头的两个是用于 image caption 的,person_keypoints 打头的两个是用于 object keypoint 的,这里我需要的是 image segmentation,所以只说怎么做 instances 的 json 文件啦~ 和 结构是一样的,一个用于训练一个用于测试。都符合下面的大框架:其中:info、license 的结构如下前面两个都没什么影响,主要在于 image,a

2020-05-06 23:30:25 5304 2

原创 Leetcode刷题:剑指offer【面试题10-1 斐波那契数列】

文章目录思路1:递归(自上而下)思路2:循环(自下而上)思路3:矩阵乘方【面试题10 斐波那契数列】难度: 简单限制: 0 <= n <= 100写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那...

2020-05-06 16:17:42 303

原创 Leetcode刷题:剑指offer【面试题09 用两个栈实现队列】

文章目录思路 1:双栈实现队列【面试题09 用两个栈实现队列】难度: 简单限制: 1 <= values <= 10000,最多会对 appendTail、deleteHead 进行 10000 次调用用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元...

2020-05-05 15:46:33 294

原创 Leetcode刷题:剑指offer【面试题08 二叉树的下一个节点】

【面试题08】二叉树的下一个节点(这道题在 LeetCode 里没有,强迫症不想跳过)题目: 给定一颗二叉树和其中的某一个节点,如何找出中序遍历序列的下一个节点?二叉树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。笨办法就是直接中序遍历给定的二叉树,然后查找所给节点的下一个节点即可。不想写这个了,我真的太懒啦…考虑到中序序列的规则,给定任意一个节点 x,就意味着 x 的左子树都已经遍历过了,x 的下一个节点不可能在其左子树上。查找节点 x 时分三种情况:① 若节点 x 有右子树,那

2020-05-04 18:37:55 362

原创 Leetcode刷题:剑指offer【面试题07 重建二叉树】

文章目录思路 1:递归【面试题07】重建二叉树难度: 中等限制: 0 <= 节点个数 <= 5000输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。Leetcode题目对应位置: 面试题07:重建二叉树复习:二叉树的三种遍历方式:前序遍历:根 左 右中序遍历:左 根 右后序遍历:左 右 根要恢复一颗...

2020-05-03 21:44:24 293

原创 Leetcode刷题:剑指offer【面试题06 从尾到头打印链表】

文章目录思路 1:改变链表方向思路 2:反转思路 3:栈思路 4:递归【面试题06】从尾到头打印链表难度: 简单限制: 0 <= 链表长度 <= 10000输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。Leetcode题目对应位置: 面试题06:从尾到头打印链表思路 1:改变链表方向将链表中链接节点的指针反转过来,改变链表的方向,然后从头到尾输出即可...

2020-05-02 17:16:20 300

原创 Leetcode刷题:剑指offer【面试题05 替换空格】

文章目录方案一:使用 python方案二:使用 C++【面试题05】替换空格难度: 简单限制: 0 <= s 的长度 <= 10000请实现一个函数,把字符串 s 中的每个空格替换成"%20"。Leetcode题目对应位置: 面试题05:替换空格方案一:使用 python(python 写的话没有还原到原题目考点的精髓,建议使用 C++)在 Python 语言中,字符串...

2020-05-01 20:06:36 336

原创 C语言:字符串内容的修改

关于:1)如何修改字符串的内容2)char str[] = "We are happy."; 和 char* sp = "We are happy."; 创建的字符串有什么不同例1: 定义一个字符串,然后修改其最后的标点符号为 ”!“,打印字符串的内容和字符串地址:# include <stdio.h>int main(){ char str[] = "We are h...

2020-05-01 14:33:52 22229 7

SegmentationClass 和 ImageSets

下载 VOC 2012 原始数据集; 用本压缩包下的 SegmentationClass 和 ImageSets 文件分别替换 VOC 2012 原始数据集中的对应文件,即可得到 VOC 2012 增强数据集 PASCAL VOC 2012 Augmented Dataset。

2022-03-31

dcm格式图像转png代码

MATLAB实现代码:DCM 格式图像转 PNG 格式 dcm2png.mat

2019-10-23

VOC增强数据集数据转换代码

VOC增强数据集数据转换代码,包括 mat2png.py,convert_labels.py,utils.py

2019-10-11

SegmentationClassAug.zip

Pascal VOC 2012 增强数据集 Label 文件,包含已经处理好的12031 张灰度标注图像

2019-10-11

VOC增强数据集的数据索引文件

VOC增强数据集的数据索引文件:包括train.txt,test.txt,train_aug.txt,trainval.txt,trainval_aug.txt,val.txt

2019-10-11

空空如也

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

TA关注的人

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