自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode广度优先搜索笔记3 二进制矩阵中的最短路径

1091. 二进制矩阵中的最短路径:广度优先搜索解决矩阵中的路径寻找问题给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求:·路径途经的所有单元格都的值都是 0 。·路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者一个角)。畅

2022-02-28 21:09:43 511

原创 C++实现常见库函数2

4. strlen返回字符串长度。5.strcat把 src 所指向的字符串追加到 dst 所指向的字符串的结尾。6.strcmp把 str1 所指向的字符串和 str2 所指向的字符串进行比较。如果返回值小于 0,则表示 str1 小于 str2。如果返回值大于 0,则表示 str1 大于 str2。如果返回值等于 0,则表示 str1 等于 str2。7.strncpy把 src 所指向的字符串复制到 dst,最多复制 n 个字符。当 src 的长度小于 n 时,dst

2022-02-22 15:16:37 258

原创 C++实现常见库函数1

1. memcpy内存拷贝函数 memcpy 的功能是从源 src 所指的内存地址的起始位置开始拷贝 n 个字节到目标 dst 所指的内存地址的起始位置开始的内存中。2.memset内存赋值函数 memset 用来给某一块内存空间进行赋值,为逐字节拷贝,是对较大的结构体或数组进行清零操作的一种最快方法,src 是起始地址,val 是要赋的值,n 是要赋值的字节数。3. strcpy字符串拷贝 strcpy把 src 字符串拷贝到 dst,并返回 dest。#include&lt..

2022-02-20 22:03:30 464

原创 Leetcode深度优先搜索笔记2 矩阵中的最长递增路径

329. 矩阵中的最长递增路径:记忆化深度优先搜索解决矩阵中的路径问题给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。示例 1:输入:matrix = [[9,9,4],[6,6,8],[2,1,1]]输出:4解释:最长递增路径为 [1, 2, 6, 9]。示例 2:输入:matrix = [[3,4,5],[3,

2022-02-10 20:48:53 682

原创 Leetcode广度优先搜索笔记2 腐烂的橘子

994. 腐烂的橘子:带有变量控制的矩阵中的广度优先搜索在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一:值0代表空单元格; 值1代表新鲜橘子; 值2代表腐烂的橘子。每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。示例 1:输入:grid = [[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2:输入:grid = [[2,...

2022-02-01 16:50:36 732

原创 Leetcode深度优先搜索笔记1 岛屿的最大面积

695. 岛屿的最大面积:深度优先搜索解决矩阵中的搜索问题给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。示例 1:输入:grid = [[0,0,1,0,0,0,0,1,0,0,0

2022-01-30 15:41:51 218

原创 Leetcode广度优先搜索笔记1 地图中的最高点

1765. 地图中的最高点:广度优先搜索解决带有一定条件的矩阵数值设置问题给你一个大小为m x n的整数矩阵isWater,它代表了一个由 陆地和 水域单元格组成的地图。如果isWater[i][j] == 0,格子(i, j)是一个 陆地格子。 如果isWater[i][j] == 1,格子(i, j)是一个 水域格子。你需要按照如下规则给每个单元格安排高度:每个格子的高度都必须是非负的。 如果一个格子是 水域,那么它的高度必须为 0。 任意相邻的格...

2022-01-29 20:43:42 127

原创 Leetcode优先队列/堆笔记1 数据流中的中位数

剑指 Offer 41. 数据流中的中位数、295. 数据流的中位数:使用自动排序的优先队列寻找数据流的中位数如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:·void addNum(int num) - 从数据流中添加

2022-01-27 10:56:11 138

原创 Leetcode回溯笔记2 矩阵中的路径+单词搜索

2022-01-24 09:38:37 439

原创 Leetcode动态规划笔记4 整数拆分

整数拆分、I. 剪绳子:拆分整数使得到的数字乘积最大给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。(给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n 都是整数,n>1 并且 m>1),每段绳子的长度记为 k[0], k[1]... k[m-1]。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到的最大乘积是18。

2022-01-13 20:54:37 241

原创 Leetcode贪心笔记1 递增的三元子序列

递增的三元子序列:暴力搜索超时的情况下使用贪心算法一次遍历得到结果给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false 。示例 1:输入:nums = [1,2,3,4,5]输出:true解释:任何 i < j < k 的三元组都满足题意示例

2022-01-12 09:31:54 3451

原创 Leetcode动态规划笔记3 丑数 II

丑数 II:动态规划在数字问题中的应用给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2输入:n = 1输出:1解释:1 通常被视为丑数。动态规划解法:丑数只包含质因数 2、3、5,每一个丑数由之前的丑数乘 2 或 3 或 5 得到,因此适用于动态规划

2022-01-05 11:44:54 588

原创 Leetcode回溯笔记1 括号生成

括号生成:使用回溯方法比暴力解法复杂度更低数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]回溯解法:首先定义返回结果变量的 result、当前处理的字符串 current。使用 backtracking 函数完成对所有情况的遍历,函数中传递存放结果的 r

2021-12-23 20:29:01 3474

原创 Leetcode动态规划笔记2 乘积最大子数组

乘积最大子数组:动态规划与其空间复杂度优化给你一个整数数组nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。动态规划解法:找到符合条件的(乘积最大)连续子数组,容易想到使用 dp 数组存储nums 数组...

2021-12-22 15:59:47 401

原创 Leetcode动态规划笔记1 三角形最小路径和

三角形最小路径和:经典的动态规划题目给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例 1:输入:triangle = [[2],[3,4],[6,5,7],[4,1,8,3]]输出:11解释:如下面简图所示: 2 3 46 5...

2021-12-19 21:22:03 290

原创 Leetcode二叉树题目笔记2 最近公共祖先

二叉树的最近公共祖先、二叉搜索树的最近公共祖先:找出给定两个指定节点的最近公共祖先236.二叉树的最近公共祖先:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解.

2021-12-16 21:52:47 112

原创 Leetcode栈题目笔记1 最小栈

最小栈、包含min函数的栈:设计支持在常数时间内检索到最小元素的栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[]..

2021-12-10 11:47:38 494

原创 Leetcode链表题目笔记3 链表求和

面试题 02.05. 链表求和:以链表的形式完成两个数字的求和,并以链表的形式输出给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。示例:输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295输出:2 -> 1 -> 9,即912进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?示例:输入:(6 -&gt

2021-12-07 16:32:36 599

原创 Leetcode二叉树题目笔记1 二叉树镜像与对称

二叉树的镜像(翻转二叉树)、二叉树的镜像:输出二叉树的镜像(翻转二叉树)、通过判断原二叉树与其镜像是否相同判断二叉树是否对称二叉树的镜像(翻转二叉树):输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1首先,使用递归方法,从根节点开始对树进行遍历,交换每个结点的左右子节点,即可得到二叉树的镜像,即翻转二叉树:class .

2021-12-06 11:37:33 564

原创 Leetcode链表题目笔记2 合并两个排序的链表

合并两个排序的链表:合并有序链表输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4对于两个递增链表的合并,使用双指针遍历两个链表,根据两个链表中各结点的val大小关系确定结点的添加顺序,同时将遍历两个链表的指针(可以直接使用其头指针)向后移动,直到指针的指向为空。依然使用虚拟头节点dummyHead,再定义pre指针作为遍历结

2021-12-05 20:33:28 335

原创 Leetcode链表题目笔记1 删除链表结点

删除链表的节点:根据给定数值,删除链表中对应的结点。给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 ->1 -> 9.若直接使用head结点进行遍历,则需要对头节点值为给定val情况作特殊处理(可以直接将头节点向后移动1位)。使用虚拟头结点dummy...

2021-12-05 20:22:19 149

原创 C++引用用于 string 对象的案例

C++ Primer Plus给出了将类对象传递给函数时使用引用的几种典型的方法,包括效果完全不同的三个函数,程序如下:#include <iostream>#include <string>using namespace std;string version1(const string & s1, const string & s2)...

2021-01-06 11:10:18 276

原创 const 用于指针的微妙之处

const位置的影响C++ Primer Plus 对 const 的使用作了较为详细的介绍,其中将 const 用于指针存在一些微妙的地方,尤其是以下两种用法:int sloth = 3;const int * ps = &sloth;int * const finger = &sloth;若将 const 放在 int * 之前,代表 *ps 为 const,不可修改,即 ps 为一个指向 const int 变量的指针,因此 ps 指向的数值不能被修改,但可以修改 ps 指

2020-12-31 16:43:00 114

原创 C++数组超界错误

C++数组超界错误在正常情况下,为数组元素赋值时,数组array的索引应当在 [0, (sizeof(array)/sizeof(array[0]))-1]。但当数组索引为负数时,例如double array[4];array[-2] = 1.5; 此时会发生什么呢?示例取自C++ Primer Plus 第六版(Stephen Prata)第四章复合类型 4.10数组的替代品 程序清单4.2 choice.cpp#include<iostream>#include<vec

2020-11-16 19:28:52 603

原创 LaTeX在论文写作中的常用命令(二)

在进行数学类论文,尤其是数学建模论文写作时,经常会用到的LaTeX命令如下:1、图片引用:The curve is shown in \textbf{Figure \ref{fig:1}}.图片插入:(width 为图片宽度,height为图片宽度,sample.jpg为图片的名称及类型,源文件需要放在工作目录下,caption括号内为图片的标题,label括号内为图片的标签,与正文...

2020-04-07 11:23:44 671

原创 LaTeX在论文写作中的常用命令(一)

LaTeX是一个强大的排版软件,有十分清晰的编辑界面和明确的写作格式,能够以一种简介且严谨的方式生成复杂表格和数学公式,因此非常适用于生成高印刷质量的科技和数学类文档,是各种英文论文写作的首选。在进行数学类论文,尤其是数学建模论文写作时,经常会用到的LaTeX命令如下:1、在主文件开头位置导入超链接包,以生成相应格式的超链接:\usepackage[colorlinks,linkco...

2020-04-06 17:21:47 1567

原创 Python文件运行出错修改后依然报错的问题

switches.py是Ryu控制器子目录topology下的一个文件。我根据实验需要对switches.py进行编辑时,有一行代码的缩进出错(少打了一个tab)而没有发现。因为之前还修改过Ryu的全局启动参数(在Ryu顶级目录下的flags.py文件中添加了代码),因此保存文件后,重新安装了Ryu控制器:sudo python setup.py install完成安装后,启动ryu-m...

2020-04-05 09:53:05 1119

原创 Ubuntu中Python2与Python3版本切换时的问题

在Ubuntu中进行系统自带的pyhton2与python3版本切换时,较多使用且比较简便的一种方法如下:1、查看系统安装的python2与python3版本,通过

2020-04-04 20:46:06 493

原创 C语言库文件

C语言中提供了丰富的系统文件,也可称为库文件。C 语言的库文件分为两类,第一类是扩展名为".h" 的头文件,包含常量定 义、 类型定义、宏定义、函数原型以及各种编译选择设置等信息,第二类是函数库,包括了各种函数的目标代码,供用户在程序中调用。 通常在程序中调用一个库函数时,要在调用之前包含该函数原型所在的".h" 文件。下面给出 Turbo C 的全部".h"文件。头文件 功能 ...

2020-04-03 09:59:23 2668

原创 在Ubuntu系统中安装Mininet和Ryu控制器

作为一个Ubuntu系统的初学者,光是搭建基本的SDN实验环境就用了很长的时间,一度陷入很尴尬的情况。由于环境设置以及网络的问题,重装了两次终于安装成功,步骤十分简单,不过安装过程中遇到的很多问题还是值得记录的。在崭新的Ubuntu系统中安装软时,遇到的一些问题和解决方法:为了避免在安装各种软件的过程中下载过慢的问题,可以首先在设置中更换下载源,选择阿里云等国内的下载源可以对apt-get...

2020-04-01 11:11:35 2210

原创 与时间有关的问题

一、编写一程序,定义结构体类型struct date,它的成员有year、month、day、weekday。其中weekday为枚举类型,通过键盘任意输入某日期,计算它的星期(1980-1-1日为Tuesday)输出它的年月日及星期的英文名称。程序如下:#include#includemain(){struct{int year;int month;in

2017-06-04 20:34:11 679

原创 常用ANSI C语言标准库函数汇总(二)

常用ANSI C语言标准库函数汇总(二)1.字符串函数使用字符串函数时,应该在源文件中使用预编译命令:#include “string.h” 函数名 函数原型 功能 返回值 memchr void memchr(void *buf,char ch,unsigned count) 在buf的前count个字符里搜索字符ch首次出现的位置

2017-05-01 09:55:24 1069 1

原创 常用ANSI C语言标准库函数汇总(一)

常用ANSI C语言标准库函数汇总(一)C语言被发明出来时并没有什么库函数,随着C语言的流行,越来越多的厂商和组织开始提供C语言的编译器,同时把经常用到的函数封装成“库”的形式发布。后来,美国国家标准协会(ANSI)制定了C语言的标准,同时也制定了一定数量的库,称之为ANSI C语言标准函数库。本文将简要介绍以下几种常见库函数的汇总。(所有函数名按照首字母顺序排列)数学函数字符函数字符串函数*

2017-04-30 12:11:58 6350

原创 C语言中的随机数问题

sC语言函数库中包含了一个产生随机数的函数: int rand( void ); 函数返回的是一个界于0~32767之间的伪随机数,包括0和32767。注意,这里产生的是伪随机数,不是真正意义上的随机数,看下面的程序: #include "stdlib.h" #include "stdio.h"  void main(

2017-04-29 22:30:23 3417

空空如也

空空如也

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

TA关注的人

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