摘要: 1 反转字符串 题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 1. 双指针 class Solution: def reverseString(self, 阅读全文
posted @ 2023-09-23 12:39 Aikoin 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 1 哈希表理论基础 1.1 哈希表 哈希表是根据关键码的值而直接进行访问的数据结构。一般哈希表都是用来快速判断一个元素是否出现集合里。 1.2 哈希函数 哈希函数如下图所示,通过hashCode把名字转化为数值,一般hashcode是通过特定编码方式,可以将其他数据格式转化为不同的数值。如果hash 阅读全文
posted @ 2023-09-23 12:31 Aikoin 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 1 链表理论基础 链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链表的入口节点称为链表的头结点也就是head。 链表中的节点在内存中不是连续分布的 ,而是散乱分布在内存中的某地址 阅读全文
posted @ 2023-09-23 11:47 Aikoin 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1 数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组下标都是从0开始的 数组内存空间的地址是连续的 在删除或者增添元素时,需要移动其他元素的地址: C++要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。 数组的元 阅读全文
posted @ 2023-09-23 11:15 Aikoin 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1 时间复杂度 1.1 知识点 时间复杂度是一个函数,它定性描述该算法的运行时间。 通常会估算算法的操作单元数量来代表程序消耗的时间。假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示,随着数据规模n的增大,算法执行时间的增长率和f(n)的增长率相同,这称作为算法的渐近时间复杂度,简称时 阅读全文
posted @ 2023-09-23 10:49 Aikoin 阅读(40) 评论(0) 推荐(0) 编辑