- 博客(4)
- 收藏
- 关注
原创 LeetCode--去除重复项
s初始化为1,f从下标1开始遍历整个数组,当nums[f]==nums[f-1],表明相邻的两个元素相等,那么f走向下一个元素,直到找到相邻两个元素不相等数组,让nums[s]=nums[f],s++需要删除重复元素,f下一个下标numms[f+1]往前挪一位(nums[f]=nums[f+1]),一次只能挪一个元素,非常麻烦,故采用双指针的思想。f从下标1开始遍历整个数组,当nums[f]==nums[f-1],表明两个元素相等,由于数组nums是连续的,所以相同元素在数组中的地址一定是连续的。
2023-12-12 17:46:05 758
原创 LeetCode-两数之和
方法一复杂度高的原因在于寻找nums[j](需要对nums[i]后的数组再次进行遍历)。为了能够快速寻找到数组中是否存在目标元素,若这个目标元素存在,找出其索引---(哈希表)。枚举数组中的每一个数nums[i],寻找数组中是否存在nums[j],使得nums[i]+nums[j]==target。整数,并返回它们的数组下标。但是,数组中同一个元素在答案里不能重复出现。创建一个哈希表,对于数组中的每一个数x,先去查询哈希表中是否存在target-x,然后将x插入到哈希表中。,请你在该数组中找出。
2023-12-11 11:19:10 380 1
原创 为什么说go语言字符串是不可变的
因为go的底层其实是新创建了一个[]byte{}类型的切片,将变量str中的指针指向了新的内存空间地址(hello go)。在go语言中,字符串是不可变的,也就是说不能直接修改字符串中的字符。因为底层是一个[]byte类型切片,使用下标的方式去修改值,这时候将一个字符内容赋给byte类型,是不允许的。如果想修改字符串中的字符,可以将字符串转换为可修改的字节数组,对字节数组进行修改,然后再将其转换为字符串。因为go中的字符串的数据结构体是由一个指针和长度组成的结构体,该指针指向的一个切片才是真正的字符串值。
2023-11-03 21:27:06 309
原创 go语言的变量
基本的int类型,float类型,bool,string,数组,结构体struct。指针,slice切片,map,管道chan,interface。go语言的++和--只能写在变量的后面,不能写在变量的前面。unsafe.Sizeof(name)返回name占用的字节数。go语言的自增自减只能当做一个独立语句使用;因为变量是程序的基本组成单位。
2023-11-03 20:26:04 51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人