自定义博客皮肤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)
  • 收藏
  • 关注

原创 Linux基础操作

一、各类小技巧1、ctrl + c 强制停止Linux某些程序运行中,或者命令输入错误时,可通过ctrl + c强制停止。2、ctrl + d 退出或登出通过快捷键:ctrl + d,退出账户的登录退出某些特定程序的专属页面3、历史命令搜索可以通过history命令,查看历史输入过的命令可以通过:!命令前缀,自动执行上一次匹配前缀的命令(从下往上搜索,第一个)可以通过快捷键:ctrl + r,输入内容去匹配历史命令;如果搜索内容是你需要的,则回车运行;如果

2023-10-13 21:09:47 136

原创 手把手带你学算法——旋转图像(48)

在本篇博客中,我们深入研究了LeetCode问题48——"旋转图像",这个问题要求我们将一个n x n的二维矩阵顺时针旋转90度。我们介绍了一种解决方法,通过两个步骤实现:矩阵转置和翻转每一行。在矩阵转置步骤中,我们通过两层循环将矩阵的行和列互换;在翻转每一行步骤中,我们使用列表切片将每一行的元素逆序排列。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解如何旋转二维矩阵。这篇文章将帮助你提高矩阵处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-10-05 15:23:52 151

原创 手把手带你学算法——螺旋矩阵(54)

在本篇博客中,我们深入研究了LeetCode问题54——"螺旋矩阵",这个问题要求我们按螺旋顺序遍历给定矩阵的所有元素。我们介绍了一种模拟遍历的方法,通过初始化边界并模拟顺时针遍历的过程,按螺旋顺序获取矩阵的元素。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握如何按螺旋顺序遍历矩阵。这篇文章将帮助你提高矩阵处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-10-05 12:59:15 151

原创 手把手带你学算法——搜索二维矩阵 II(240)

在本篇博客中,我们深入研究了LeetCode问题240——"搜索二维矩阵 II",这个问题要求我们在一个按升序排列的二维矩阵中高效地搜索目标值。我们介绍了一种高效的解决方法,利用矩阵的升序特性从右上角开始逐步排除行或列,以快速缩小搜索范围。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握如何在二维矩阵中进行目标值搜索。这篇文章将帮助你提高算法设计和搜索技巧,为解决类似问题提供有用的指导。

2023-10-05 11:01:53 145

原创 手把手带你学算法——两两交换链表中的节点(24)

在本篇博客中,我们深入研究了LeetCode问题24——"两两交换链表中的节点",这个问题要求我们交换链表中每两个相邻的节点。我们介绍了两种解决方法:递归和迭代。递归方法通过递归处理子问题来交换节点,而迭代方法则通过迭代遍历链表并在每两个节点之间进行交换。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握如何交换链表中的节点。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-10-04 19:44:22 134

原创 手把手带你学算法——删除排序链表中的重复元素(83)

在本篇博客中,我们将深入研究LeetCode问题83——"删除排序链表中的重复元素",这个问题要求我们删除排序链表中出现多次的重复元素,保留每个元素的第一次出现。我们通过使用迭代方法,逐步遍历链表并删除重复元素,同时保持链表的有序性。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握如何处理排序链表中的重复元素。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-10-03 22:54:41 157

原创 YOLO系列最新综述从YOLOv1到YOLOv8【2023】

YOLO已成为机器人、无人驾驶汽车和视频监控应用的核心实时目标检测系统。我们对YOLO的发展进行了全面的分析,检查了从最初的YOLO到YOLOv8、YOLO-NAS和YOLO with Transformers的每次迭代中的创新和贡献。我们首先描述标准指标和后处理;然后,我们讨论了网络架构的主要变化和每个模型的训练技巧。最后,我们总结了YOLO发展的重要经验教训,并对其未来发展进行了展望,强调了增强实时目标检测系统的潜在研究方向。

2023-10-03 16:47:40 4816

原创 手把手带你学算法——回文链表(234)

在本篇博客中,我们将深入研究LeetCode问题234——"回文链表",这个问题要求我们判断给定的单链表是否是回文链表。为了解决这一问题,我们采用了快慢指针和链表反转的方法。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握如何判断链表是否是回文的。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-27 17:23:23 139

原创 手把手带你学算法——排序链表(148)

在本篇博客中,我们将深入研究LeetCode问题148——"排序链表",这个问题要求我们对链表进行排序,并要求时间复杂度为 O(n log n) 和常数空间复杂度。我们将介绍如何使用归并排序算法来解决这一问题,逐步拆分、排序和合并链表,最终得到有序链表的方法。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握这一高效排序算法。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-17 13:35:29 178

原创 手把手带你学算法——两数相加(2)

在本篇博客中,我们将深入研究LeetCode问题2——"两数相加",这个问题要求我们模拟大整数相加的过程,通过链表表示两个大整数相加的结果。我们将介绍如何使用迭代方法来解决这一问题,逐步遍历链表节点并模拟加法运算。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握这一算法。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-17 09:45:50 180

原创 手把手带你学算法——删除排序链表中的重复元素Ⅱ(82)

在本篇博客中,我们将深入研究LeetCode问题82——"删除排序链表中的重复元素Ⅱ",这个问题要求我们删除排序链表中出现次数超过一次的所有重复元素。我们将介绍如何使用迭代方法,逐步遍历链表以删除重复元素。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握这一链表操作的算法。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-15 22:45:33 164

原创 手把手带你学算法——链表中倒数第k个节点(剑指 Offer 22)

欢迎来到本教程的一篇新文章,今天我们将学习如何解决剑指 Offer 22 题——"链表中倒数第k个节点"。这个问题要求我们找到链表中倒数第 k 个节点,并返回该节点的值。通过学习如何使用快慢指针来解决这个问题,你将提高你的链表处理和算法设计能力。

2023-09-12 16:55:48 265

原创 手把手带你学算法——重排链表(143)

在本篇博客中,我们将深入研究LeetCode问题143——"重排链表",这个问题要求我们重新排列链表中的节点。我们将介绍如何找到链表的中点、反转链表以及合并两个链表,以实现链表的重排。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握这一链表操作的算法。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-11 23:00:28 372

原创 手把手带你学算法——环形链表 II(142)

本篇博客将深入研究LeetCode问题142——"环形链表 II",这个问题要求我们找到环形链表的入口点。我们将介绍如何使用快慢指针方法,逐步遍历链表以确定是否存在环,然后找到环的入口点。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握这一链表操作的算法。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-09 10:38:26 279

原创 手把手带你学算法——相交链表(160)

在本篇博客中,我们将深入研究LeetCode问题160——"相交链表",这个问题要求我们找到两个链表的交点。我们将介绍如何使用双指针方法,逐步遍历两个链表,以确定它们是否相交,如果相交,则找到交点的位置。通过详细的问题描述、解决思路和Python代码示例,你将更好地理解并掌握这一链表操作的算法。这篇文章将帮助你提高链表处理和算法设计的能力,为解决类似问题提供有用的指导。

2023-09-07 22:04:05 283 1

原创 手把手带你学算法——环形链表(141)

本篇博客将深入探讨LeetCode问题141——"环形链表",这个问题涉及链表操作。我们将学习如何使用快慢指针技巧来检测链表中是否存在环。通过详细解释问题描述和解决思路,以及提供了Python代码示例,你将能够更好地理解和应用这一经典的链表算法。这篇文章将帮助你提高链表处理和算法设计的能力,无论你是初学者还是有经验的程序员。

2023-09-06 19:35:53 341 1

原创 手把手带你学算法——合并K个有序链表(23)

在本篇博客中,我们将学习如何解决LeetCode中的问题23——"合并K个有序链表"。这个问题要求我们将K个有序链表合并成一个新的有序链表,并提供了一种高效的算法解决方法。我们将使用分治法和归并排序的思想,逐步合并这些链表,最终得到一个有序的结果。无论你是初学者还是有一定经验的程序员,这篇教程都将帮助你提高链表处理和算法设计的能力。

2023-09-06 11:06:09 334 1

原创 【手撕】K-measn算法及python代码实现及改进

K-means 算法是一种无监督学习算法,用于将数据集中的数据点划分为 K 个不同的簇,其中 K 是用户定义的超参数。这个算法的目标是使每个数据点都属于离它最近的簇的中心点,从而最小化数据点与簇中心点之间的距离。初始化:随机选择 K 个数据点作为初始的簇中心点。分配:对每个数据点,计算它与每个簇中心点的距离,并将它分配到距离最近的簇中心点所在的簇。更新:对于每个簇,计算新的簇中心点,通常是该簇中所有数据点的平均值。重复:重复步骤 2 和步骤 3,直到簇中心点不再改变,或者达到最大迭代次数。结束。

2023-09-05 19:49:29 637 1

原创 手把手带你学算法——合并两个有序链表(21)

在本篇博客中,我们将学习如何解决LeetCode中的问题21——"合并两个有序链表"。这个问题要求我们合并两个有序链表并将其作为一个新链表返回。我们将使用迭代方法来解决这个问题,通过比较两个有序链表的节点值,逐一合并它们,最终返回合并后的有序链表。无论你是初学者还是有一定经验的程序员,这篇教程都将帮助你提高链表处理技能,解决类似的链表问题。

2023-09-05 16:59:10 436 1

原创 手把手带你学算法——K个一组翻转链表(25)

在本篇博客中,我们将学习如何解决LeetCode中的问题25——"K个一组翻转链表"。这个问题要求我们翻转链表中的每一组 k 个节点,具体操作将在文章中详细讨论。无论你是初学者还是有一定经验的程序员,这篇教程都将帮助你提高链表处理技能,解决类似的链表问题。

2023-09-04 22:06:16 487 1

原创 手把手带你学算法——反转链表 II(92)

在本篇博客中,我们将深入探讨链表反转的算法。首先,我们介绍了反转整个链表的基本思路和Python代码实现。接着,我们讨论了如何扩展这个问题,解决反转链表的一部分,具体来说是LeetCode中的问题92——"反转链表 II"。我们详细解释了解决思路,并提供了相应的Python代码示例。无论你是初学者还是有一定经验的程序员,这篇教程都将帮助你理解链表反转的核心概念,为解决类似的算法问题提供了基础知识。

2023-09-04 21:12:23 479 1

原创 手把手带你学算法——反转链表(206)

反转链表是算法和数据结构中的一个基础问题,理解它将有助于你更好地理解链表数据结构和解决与链表相关的复杂问题。

2023-09-04 10:18:09 481 1

原创 手把手带你学算法——最大连续1的个数(485)

我们只需要去判断从数组里取出来的数是否是1,如果是的话,我们定以一个count计数加1,当识别到0时,我们就需要把前面的count保存下来,每次保留最大值,这时候还需要把count清零重新计数,最后结果输出再result。代码中运用了一个max()函数,就是比较二者大小,类似于一个if判断函数。开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3., 计算其中最大连续。

2023-04-02 19:16:16 868

原创 C++进阶学习——(第十一天)文件

程序运行时产生的数据都属于临时数据,程序一旦关闭就释放了,而通过文件就能解决这个问题。C++中对文件进行操作需要包含头文件<fstream>文件类型分为两类:文本文件、二进制文件ofstream:写操作ifstream: 读操作fetream:读写操作首先看一下文本文件的建立示例:#include<iostream>using namespace std;#include<fstream>//文本文件 写文件void test

2022-04-08 17:40:35 509

原创 C++进阶学习——(第十天)多态

多态是面向对象三大特征之一,前面我们已经学习了封装、继承,接下来我们就学习多态。多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名 动态多态:派生类和虚函数实现运行时多态我们也主要学习动态多态,我们要注意动态多态的函数地址晚绑定,运行阶段确定函数地址。动态多态满足条件1、有继承关系2、子类重写父类的虚函数重写:函数返回值类型 函数名 参数列表 完全一致称为重写示例1:#include<iostream>using namespac..

2022-04-07 20:43:26 581

原创 C++进阶学习——(第九天)继承

我们今天要学习的内容是——继承,其实这个概率我们很好去理解,比如说动物类,他里面包含了猫类、狗类,而猫类里面又分为加菲猫、波斯猫,他们其中都包含着一些相同的属性,在这种情况,我们就可以考虑利用继承的技术来减少重复的代码量。继承语法:class 子类:继承方式 父类其中继承方式有分为三类:公共继承、保护继承、私有继承当子类和父类出现同名的成员时,我们该如何访问到子类或父类中同名的数据呢?其实很简单,记住下面两点就行了:访问子类同名成员 直接访问即可 访问父类同名成员 ...

2022-04-06 19:13:01 1117

原创 C++进阶学习——(第八天)运算符重载2

前面我们说了加法运算符和左移运算符重载,本文讲继续讲解递增、赋值、关系和函数调用运算符重载。递增运算符重载作用:通过重载递增运算符,实现自己的整型数据。我们知道递增分为前置++和后置++,因此我们在重载时也要区分他们,前置使用operator++(),而且最后返回的是一个引用,而后置++则是operator++(int),这个地方的int,就是我们前面所讲的占位参数,最后返回的是一个值,我们以此来区分前置和后置,下面来看示例。示例1:#include<iostream>usi

2022-04-05 20:02:16 1091

原创 C++进阶学习——(第七天)运算符重载1

概念:对已有的运算符重新进行定义,赋予其另一种功能,使其适应不同的数据类型下面我们学习六类运算符重载,分别是加号、左移、递增、赋值、关系和函数调用运算符重载。首先我们学习加号运算符重载作用:实现两个自定义数据类型相加运算zhiint a=10; int b=10; int c=a+b;这一段是没问题的,那下面这一段可以直接相加吗?Person p1; p1.m_A = 10; p1.m_B = 10;Person p2; p2.m_A = 10; p2.m_B = 1...

2022-04-05 14:02:54 1230

原创 C++进阶学习——(第六天)友元

在前面我们讲解了成员属性有两种权限设置:公共权限(public)和私有权限(private)但是在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问。那我们该怎样去处理呢?现在我们设想一种环境,在你的房间,有柜子放一些书籍,大家都可以看(public),但是有个柜子放你写的日记,一般不给人看(private)。但是你特别好的朋友(friend)来了,这些内容他是可以看的。这就是我们要学习的友元,关键字为 friend设计他的目的就是让一个函数或者类访问另一个类中私有成员。

2022-04-04 14:33:07 634

原创 C++进阶学习——(第五天)对象模型和this指针

成员变量和成员函数是分开存储的只有非静态成员变量属于类的对象上C++编译器在执行代码时会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置每个空对象也应该有一个独一无二的内存地址我们用下面这个示例来说明上面知识点:#include<iostream>using namespace std;class Person{ int m_A;//只有非静态成员变量 static int m_B; //静态成员变量 静态变量,类内定义,类外赋值 voi

2022-04-03 20:49:59 1032

原创 C++进阶学习——(第四天)之对象特性

类成员里的构造函数和析构函数:对象的初始化和清理1、构造函数:进行初始化操作没有返回值 不用写void函数名 与类名相同构造函数可以有参数,可以发生重载创建对象的时候,构造函数会自动调用,而且只调用一次2、析构函数:进行清理的操作没有返回值 不用写void函数名和类名相同 在名称前加 ~析构函数不可以有参数,不可以发生重载对象在销毁前 会自动调用析构函数,而且只会调用一次构造函数又分为:按照参数分类 无参构造(默认构造) 有参构造按照类型分...

2022-04-02 15:15:59 668

原创 C++进阶学习——(第三天)C++封装

C++认为万事万物都皆为对象,对象上有其属性和行为类在设计时,可以把属性和行为加以控制,可以设置三种权限:public 公共权限 成员 类内可以访问 类外可以访问 protected 保护权限 成员 类内可以访问 类外不可以访问 private 私有权限 成员 类内可以访问 类外不可以访问这里使用class去创建类,前面我们学习了struct创建体,二者并没有什么差别struct和class唯一的区别就是默认的访问权限不同struct默认...

2022-04-01 09:30:50 243

原创 C++进阶学习——(第二天)之引用

引用语法: 数据类型 &别名 = 原名作用:1、函数传参时,可以利用引用技术让形参修饰实参 2、引用是可以作为函数的返回值存在的(同样不可以返回局部变量引用)本质:引用的本质在C++内部实现一个指针常量优点:可以简化指针修改实参--示例:#include<iostream>usingnamespacestd;intmain(){inta = 1;int&b = a;//创建引用cout &l...

2022-03-31 08:48:59 745 1

原创 C++进阶学习——(第一天)之C++内存四区

一、 内存分区模型在执行C++程序时,我们可将内存划分为四个区域代码区:存放函数体的二进制代码,由操作系统进行管理(我们一般的代码都在里面) 全局区:存放全局变量和静态变量以及常量 栈区:存放函数的参数值,局部变量等,这个区域则由编译器自动分配释放 堆区:这一区域则是程序员自己分配和释放,程序结束时也会由系统回收为什么要区分这些区域呢?将数据放在不同区域,数据所占空间的时间不同,这也使我们能更灵活的使用数据。二、 程序运行前在程序编译后,未执行该程序前分为两个部分1.

2022-03-30 16:46:32 936

空空如也

空空如也

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

TA关注的人

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