avatar
文章
179
标签
47
分类
46

首页
文章
  • 归档
  • 标签
  • 分类
  • ToDo
  • 友情链接
留言板
关于
Echin の 博客
搜索
首页
文章
  • 归档
  • 标签
  • 分类
  • ToDo
  • 友情链接
留言板
关于

Echin の 博客

设计链表
发表于2023-12-30|更新于2024-01-03|代码随想录|代码随想录
今天发了几个小时就看了这么一道题目,深深感受到了链表中的临界思维的恶心之处,和一些我以前有一些误区的地方和之前没学习到的知识点,记录一下,狗屎 题目 你可以选择使用单链表或者双链表,设计并实现自己的链表。我使用的是单链表 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 实现 MyLinkedList 类: MyLinkedList() 初始化 MyLinkedList 对象。 int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1 。 void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后,新节点会成为链表的第一个节点。 void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。 void addAtIndex(int index, i ...
链表
发表于2023-12-30|更新于2023-12-30|代码随想录|代码随想录
定义 1234type LinkNode struct{ Val int Next *LinkNode struct} 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 12输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5] 示例 2: 12输入:head = [], val = 1输出:[] 示例 3: 12输入:head = [7,7,7,7], val = 7输出:[] 我的答案:我是设置了p,q两个指针,一前一后 比较的时候要用后面的指针进行比较,因为删除操作要跳跃一个元素 因为删除元素的地方要分为 头部,中间,尾部三个地方,所以我特地分了三种情况(看了标准答案后发现我是傻逼,因为某个写法跟我很相似,但是能囊括三种情况) 整体代码有冗余,还很长,看一下标准版本的 12345678910111213141516171819202122232425262728293031func remov ...
Go圣经-map
发表于2023-12-29|更新于2024-02-22|Go|Go
Map 创建1234567891011// 第一种c:= make (map[string]int)// 第二种c := map[string]int{"ok":1,"error":-1}// 第三种var c map[string]int// 万能好用写法: 使用空接口可以实现连键值都是类型不一样的c := map[string]interface{}{ "ok":"ok", "err":"-1"} 增加直接通过索引增加(同数组) 删除使用内置的delete()函数 12delete(ages, "alice")// 第一个写变量名,第二个写键 查询直接通过索引查询(同数组) 比较不能使用== 来比较 用for range 一个个比较(同切片) 复制不能直接复制 用for range 一个个复制(同切片) 修改直接用索引来修改(同数组 ...
Go圣经-slice
发表于2023-12-29|更新于2024-02-22|Go|Go
变量-常量-字面量 1234a := 1const b int = 1// a 变量 b 常量 1 字面量// 综上所述 字面量就是等号后面的数据 数组 Go内置的函数**len()**可以返回数组的元素个数 […]int “…”省略号出现在数组长度的位置,数组的长度就由初始化数组的元素个数决定 [3]int与[4]int是不同的类型,并且 数组长度的位置必须是常量表达式 […]int{99:-1},表示总共由一百个元素,第九十九个为-1,其他都为0 [5]string{1: “ok”, 2: “o” } 这里的起始位置就是索引为1的地方 数组作为形参的时候,是另外创建一个副本,是值传递的形式,要与其他语言分开来 要实现地址传递,直接使用数组指针,*[9]int slice slice表示一个拥有相同类型原始的可变长度的类型 指针 长度 容量 长度和容量切片的长度就是它所包含的元素个数。 切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。 切片可以按需自动增长和缩小,增长一般使用内置的 append 函数来实现,而缩小则是通过对切片再次 ...
图解HTTP-网络基础
发表于2023-12-28|更新于2023-12-28|图解HTTP|图解HTTP
Web web(world wide wed) 是全球广域网,也成为万维网,它是基于超文本,HTTP协议,全球性的分布式图形信息系统,一般来说Web也可以认为是浏览器 TCP/IP协议簇 TCP/IP协议簇 并不是单单指的是 TCP和IP协议 它是一个四层协议系统,自顶向下分别是应用层,传输层,链路层和物理层 应用层应用层决定了向用户提供应用服务时通信的活动 传输层传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输 网络层网络层用来处理网络上流动的数据包。 链路物理层处理连接网络的硬件部分 通信大致过程 数据的封装 IP协议 IP(Internet Protocol),就是那么高大上,其作用就是把各种数据包传送给对方。 要确保数据包能够确实传送到对方,需要IP地址和MAC地址(Media Access Control Address) ARP协议IP间的通信依赖MAC地址,在通信中转的情况中,会利用中转设备的MAC地址搜索下一个中转目标,这是就会采用ARP协议(Address Resolution Protocol),ARP是一种解析地址的协议,根据通 ...
Mysql进阶篇-SQL优化
发表于2023-12-28|更新于2023-12-28
数组
发表于2023-12-27|更新于2023-12-27|代码随想录|代码随想录
今天开始刷题,记录一下 23.12.28 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 123输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4 示例 2: 123输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1 解题12345678910111213141516func search(nums []int, target int) int { length := len(nums) left := 0 right := length - 1 for(left<= right){ middle := (left+right)/2 if nums[middle]>target{ ...
Go圣经-字符串
发表于2023-12-27|更新于2024-02-22|Go|Go
字符串 字符串不可改变 ​ s[0]=’L’ 这种操作是不行的 ​ 但是可以通过 s += “, right foot”改变 原生的字符串字面量的书写形式是 一对反引号,而不是双引号。 原生的字符串字面量可以展开多方,但是回车符会被删除 适用于HTML模板,JSON字面量,命令行提示信息 就可以解释JSON结构体的tag字段了。 ASCII 字符集 为美国人而设计的字符集,包含了英文字母和一些其他字符,用一个字节代表一个字符,第一个数一定为零,其余七位总共有一百二十八个选择 GBK字符集 中国人加入战场,用两个字节代表一个字符,同时还兼容ASCII字符集,因为它第一个数字是一就代表了GBK字符集,如果第一个字符是0,就代表是ASCII码,也好分辨 Unicode字符集 囊括了世界上所有文书体系的全部字符 UTF-32的编码方式:用4个字节表示一个字符(不合适),占内存 UTF-8的编码方式:采取可变长变化反感,共分为四个长度区,1,2,3,4字节 英文,数字字符占一个字节,汉字字符占用三个字节 一个文字字符符号编码的首字节的高位知名了后面还有多少 ...
Go圣经-类型转换
发表于2023-12-26|更新于2024-02-22|Go|Go圣经
Go语言中的类型转换有四种 显示转换:强制转换 隐式转换:数值的初始化赋值传参时会完成,或者接口结构体的使用中 类型断言:接口的类型断言,必须时接口 Unsafe.pointer:– 显示转换123//最简单的var a int //设置了a的类型为int 哈哈哈 12345// 同类型的转换 数字类型之间的转换,切片和字符串的转换是允许的var a int64var b int32fmt.Println("Type(a) = %T, Type(b) = %T \n",a,int64(b)) 123456// 不同类型的转换 int ->stringvar a int64var b stringb = strconv.Itoa(a)fmt.Println("a= %d , b= %c \n",a,int64(b))//不同类型的转换需要使用strconv包,具体使用看官方文档 隐式转换 传统初始化赋值编译器就会自动实现转换 a := 1 a自动被认为是 int 在Go中,如果一个结构体满足 ...
Go圣经-程序设计
发表于2023-12-26|更新于2024-02-22|Go|Go
程序设计 名称驼峰式 ,其他与C差不多 声明 var const type func 变量 常量 类型 函数 变量var name type = expression name := expression var name type 一般用 :=,如果不赋值就用第三个,如果未初始化变量,Go会自动的对应于相应类型的零值,对于复合类型的变量,零值就是所有元素或成员的零值,但是全局变量的时候不能使用短变量,必须带上var var a ,b ,c int // int int int var a ,b ,c = bool , int ,string // bool ,int ,string a,b := 0 , 0.0 指针*type 可以间接访问 有意思的一个包 123456789101112131415161718192021222324252627package mainimport ( "flag" "fmt" " ...
1…15161718
avatar
Echin-h
keep learning
文章
179
标签
47
分类
46
Follow Me
公告
love is accumulated, not love, too.
最新文章
北京租房2025-07-21
Linux命令补充2025-02-27
非唯一索引加锁规则实操2025-02-19
sls日志接入2025-01-18
操作系统概论2024-12-08
分类
  • CD/CI1
  • CI/CD1
  • Gin10
  • Go26
  • Gorm9
  • JAVA2
  • Linux4
  • MQ1
标签
flamgo CI/CD 简历 代码随想录 ngrok casbin 分布式锁 配置文件 Go 八股文 CD/CI JAVA语法 oauth Gin git vim rpc none NX青训营 flamego 设计模式 Linux docker JWT pinnacle 我爱记单词 sls 计算机网络 博客 Mysql MQ 前端 北京北京 随笔 Gorm 设计原则 k8s 算法 Session 图解HTTP
归档
  • 七月 20251
  • 二月 20252
  • 一月 20251
  • 十二月 20243
  • 十一月 20243
  • 十月 20248
  • 九月 20249
  • 八月 20246
网站资讯
文章数目 :
179
已运行时间 :
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Echin-h
框架 Hexo|主题 Butterfly
today is a beautiful day
搜索