自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树基础

如果节点 X 存储在数组中下标为 i 的位置,下标为 2 * i 的位置存储的就是左子节点,下标为 2 * i + 1 的位置存储的就是右子节点。从前面画的前、中、后序遍历的顺序图,可以看出来,每个节点最多会被访问两次,所以遍历操作的时间复杂度,跟节点的个数 n 成正比,也就是说二叉树遍历的时间复杂度是 O(n)。经典的方法有三种,前序遍历、中序遍历和后序遍历。编号3的二叉树中,叶子节点都在最底下两层,最后一层的叶子节点都靠左排列,并且除了最后一层,其他层的节点个数都要达到最大,这种二叉树叫做完全二叉树。

2024-03-13 00:12:34 539

原创 Go 编程模式:Functional Options学习笔记

这组代码传入一个参数,然后返回一个函数,返回的这个函数会设置自己的 Server 参数。上述编码不但解决了“使用 Config 对象方式的需要有一个 config 参数,但在不需要的时候,是放 nil 还是放 Config{}”的选择困难问题,也不需要引用一个 Builder 的控制对象,直接使用函数式编程,在代码阅读上也很优雅。再定一个 NewServer()的函数,其中,有一个可变参数 options ,它可以传出多个上面的函数,然后使用一个 for-loop 来设置 Server 对象。

2024-03-12 00:03:14 335

原创 Go语言var prev *ListNode和pre := &ListNode{}的区别

var prev *ListNode 只声明了一个指针变量 prev,并没有分配或初始化任何 ListNode 实例。pre := &ListNode{} 不仅声明了一个指针变量 pre,还分配并初始化了一个 ListNode 实例,并将 pre 指向这个新实例。

2024-03-11 19:42:46 348

原创 认识Go语言空结构体

需要注意的是,虽然空结构体不占用任何额外的空间来存储字段,但在某些情况下(例如作为映射的键或通道的元素),它们仍然会占用一些内存来标识唯一的实例。本质上来讲,使用空结构体的初衷只有一个:节省内存,但是更多的情况,节省的内存其实很有限,这种情况使用空结构体的考量其实是:根本不关心结构体变量的值。golang 正常的 struct 就是普通的一个内存块,必定是占用一小块内存的,并且结构体的大小是要经过边界,长度的对齐的。结构体名称是你为结构体定义的名称,字段是结构体的成员变量,类型是字段的数据类型。

2024-03-11 18:01:29 786

原创 Go 编程模式:错误处理学习笔记

nil 的情况,退出循环后有一个 scanner.Err() 的检查,看来使用了结构体的方式。这段代码通过使用 Closure 的方式把相同的代码给抽出来重新定义一个函数,这样大量的 if err!=nil 处理得很干净了,但是会带来一个问题,那就是有一个 err 变量和一个内部的函数,感觉不是很干净。Go 语言的函数支持多返回值,所以,可以在返回接口把业务语义(业务返回值)和控制语义(出错返回值)区分开。Go语言的错误处理的方式,本质上是返回值检查,但它兼顾了异常的一些好处——对错误的扩展。

2024-03-11 00:18:26 275

原创 Go编程模式:切片、接口、时间和性能学习笔记

这种编程模式在 Go 的标准库有很多的示例,最著名的就是 io.Read 和 ioutil.ReadAll 的玩法,其中 io.Read 是一个接口,你需要实现它的一个 Read(p []byte) (n int, err error) 接口方法,只要满足这个规则,就可以被 ioutil.ReadAll这个方法所使用。a[1:16] 的切片赋给 b ,此时,a 和 b 的内存空间是共享的,然后,对 a 做了一个 append()的操作,这个操作会让 a 重新分配内存,这就会导致 a 和 b 不再共享。

2024-02-23 00:12:10 806 1

原创 Shell编程——$*和$@的区别

∗和∗和。

2023-11-30 10:33:35 393

原创 Go语言练习——最长公共前缀

最长公共前缀

2023-10-26 23:34:49 71

原创 Go语言练习——罗马数字转整数

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。若存在小的数字在大的数字的左边的情况,根据规则需要减去小的数字。对于这种情况,我们也可以将每个字符视作一个单独的值,若一个数字右侧的数字比它大,则将该数字的符号取反。若输入的字符串满足该情况,那么可以将每个字符视作一个单独的值,累加每个字符对应的数值即可。例如 XXVII 可视作 X+X+V+I+I=10+10+5+1+1=27。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。输入: s = “IV”

2023-10-26 00:05:21 53

原创 Go语言练习——回文数

回文数问题

2023-10-24 23:22:06 59

原创 Go语言练习——两数之和

两数之和

2023-10-24 00:36:04 70

原创 Go语言Select chan用法详解

select 语句是 Go 语言中用于处理多个通道操作的关键字,它允许你在多个通道上进行非阻塞的选择操作。select 语句可以用于以下几种情况:监听多个通道:你可以同时监听多个通道,一旦其中任何一个通道就绪(有数据可读或可写),select 就会选择第一个就绪的通道执行相关操作。超时操作:你可以使用 select 结合定时器通道来实现超时操作,以确保不会无限期地等待通道操作完成。避免阻塞:当某个通道操作可能导致程序阻塞时,select 可以帮助你避免阻塞,以保持程序的响应性。

2023-09-11 16:38:16 117

原创 为什么要实例化对象

在Go中,你可以使用结构体来表示对象,并通过实例化结构体来创建对象的具体实例。总之,对象实例化是面向对象编程中的基本概念,它允许你创建具体的对象,封装数据和行为,并在程序中使用这些对象来表示和操作实际问题。我们可以使用Go中的结构体来表示矩形对象,并通过实例化结构体来创建具体的矩形实例。在面向对象编程中,实例化对象是为了创建类的具体实例,以便在程序中使用这些实例来表示和操作某种数据或行为。模块化和重用:我们可以创建多个不同的矩形实例,每个实例都可以独立使用,从而实现了代码的模块化和重用。

2023-09-08 10:47:07 346

原创 Go语言实现C方法的调用

这涉及到使用 import “C” 来导入 C 代码,并将 Go 数据类型映射到 C 数据类型。在这个示例中,使用 -I 指定包含 C 头文件的目录,并使用 -L 指定 C 库的目录和 -l 指定库的名称。在 Windows 上,可能需要将 C 代码编译为 DLL,并在链接选项中使用 -ldflags -lmylibrary.dll,以加载动态链接库。在上述 Go 代码中使用 import “C” 导入了 C 代码,并在 main 函数中调用了 C.helloFromC()。

2023-09-08 09:04:48 103

原创 Go语言实现监听某方法调用返回值并与上一次的结果进行比较的方法

在这个示例中,创建了一个通道 resultChan 和一个变量 prevResult 来存储上一次的结果。在匿名函数的协程中,循环调用 SomeFunction 并将当前结果和上一次结果发送到通道中。要实现监听某个方法调用的返回值,并与上一次的结果进行比较,可以在监听方法调用的返回值时,将上一次的结果也传递到通道中。然后,在接收通道中的返回值时,你可以比较新旧值并执行相应的逻辑。在主协程中,循环接收通道中的结果,并比较当前结果和上一次结果。根据比较结果,执行相应的逻辑。

2023-09-07 17:41:29 67

原创 go build用法介绍

go build

2023-08-28 17:24:03 359

原创 golang基于Linux环境执行linux指令

Go语言执行linux指令实现

2023-08-26 18:42:28 890

原创 时间数据处理

以上代码中,我们首先定义了要转换的时间字符串格式,然后使用。类型转换为Unix时间戳,输出2716704646。包来将时间字符串转换为时间戳。函数将时间字符串转换为。

2023-06-08 21:37:40 120

原创 Go对象切片排序与map排序

3.实现Less方法,该方法定义了对象的比较规则。按照员工的年龄从小到大对员工列表进行排序输出。4.使用sort包中的sort方法,进行排序。2.实现sort.Interface接口。

2023-06-08 16:45:34 122

原创 Go判断对象是否为空结构

在Go语言中,判断一个对象是否为空结构体可以通过reflect包中的IsZero方法来实现。此外还可以通过判断类型和零值来判断一个结构体是否为空。

2023-05-31 10:45:12 716 1

原创 Go计算某段代码运行所耗时间

类型的值,表示两个时间之间的时间差。默认情况单位为纳秒。如需要以秒为单位的结果,可以用。函数,记录代码的开始和结束时间,计算时间差来得到代码运行耗时。方法将其转换为浮点数。

2023-05-30 21:24:26 937 1

原创 Go语言字节切片转换

可以使用Go语言中的内置函数"String()"可以将字节切片转换为字符串。执行上述代码会输出字符串abcd。在转换过程中,Go语言会将字节切片中的每个字节都转换为对应的Unicode字符,并组成一个字符串返回。注意:在使用string()函数将字节切片转换为字符串是,字节切片中的每个字符必须都是有效的ASCII或Unicode码。如果字节切片中包含无效的字符,则转换结果将变得不可预测。

2023-05-30 21:15:19 999 1

原创 golang开发常用软件设置整理

golang常用开发软件配置

2022-09-30 17:25:03 833 1

原创 Anaconda3在windows环境下安装记录

Anaconda3在windows环境下安装记录一、下载Anaconda3二、安装Anaconda3三、修改jupyter_notebook起始路径一、下载Anaconda3进入Anaconda3官网下载页面下载指定版本的安装包二、安装Anaconda3傻瓜式安装,双击安装包,根据提示完成Anaconda3本地安装。三、修改jupyter_notebook起始路径进入jupyter_notebook快捷方式所在路径右键点击该快捷方式,进入属性提示框,将图中标记框中的路径改为期望的起始路径,

2021-04-07 16:42:53 96

原创 Deepson在Jetson Nano上进行视频分析的入门

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档Deepson在Jetson Nano上进行视频分析的入门系列文章目录前言一、DeepStream简介1.什么是DeepStream应用程序?2.什么是DeepStream SDK?3.DeepStream SDK参考应用程序4.GStreamer插件5.TensorRT6.视频分析7.DeepStr

2021-04-02 16:35:13 661

空空如也

空空如也

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

TA关注的人

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