1. List 容器的基本概念 1. list 是一个双向链表容器,可高效的进行插入删除元素,他的原理在于每个元素都有两个指针来记录前后两个元素的地址,像火车车厢一样,list 中各个元素在物理存储单元上非连续,是通过指针相连在一起的。 2. 相较于vector的连续线性空间,list会显得复杂许多 ...
分类:
其他好文 时间:
2020-05-04 00:52:48
阅读次数:
52
一、修改 代码示例 motorcycles = ['honda', 'yamaha', 'suzuki'] print(motorcycles) motorcycles[0] = 'ducati' print(motorcycles) 运行结果 ['honda', 'yamaha', 'suzuki ...
分类:
编程语言 时间:
2020-05-03 23:11:04
阅读次数:
153
底层 :ArrayList是List接口的大小可变数组的实现。 是否允许null :ArrayList允许null元素。 时间复杂度 :size、isEmpty、get、set、iterator和listIterator方法都以固定时间运行,时间复杂度为O(1)。add和remove方法需要O(n) ...
分类:
其他好文 时间:
2020-04-30 19:17:54
阅读次数:
64
vector: 数据结构:线性连续空间 特点:动态扩容机制,及其能支持随机访问的迭代器。通过判断finish是否等于end_of_storage 来判断备用空间是否充足,进而决定是否进行扩容。所谓动态扩容,不是在原空间之后扩容,而是以原空间两倍另外配置空间,然后将原内容拷贝过去,并释放原空间。也是因 ...
分类:
其他好文 时间:
2020-04-28 20:11:55
阅读次数:
52
1、排序 L.sort(reverse=False) 参数:缺省参数,非必选 作用:默认升序,即由小到大。需要降序时,加上参数reverse=True 返回值:返回排序后的列表L。不能用变量接收,列表L已经是排序后的了 2、追加单个元素 L.append(arg) 参数:必选参数,为空会报错 作用: ...
分类:
编程语言 时间:
2020-04-28 12:56:27
阅读次数:
79
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶(top),相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(push), ...
分类:
编程语言 时间:
2020-04-28 00:21:04
阅读次数:
52
数组的制约:局限性。有多少放多少,要想追加,就必须重新再定义一个数组,这就造成了资源的极大浪费而且性能消耗也比较大。因此此操作不太推荐。所以集合就来了。 int[] arr=new[]{1,2,3,4} 创建集合: ArrayList list=new ArrayList(); list.Add(1 ...
栈和队列 栈和队列的定义和特点 栈(stack):仅在表尾进行插入或删除操作 表尾(栈顶) 表头(栈底) 后进先出 队列(queue):只允许在表的一端进行插入,另一端删除元素 插入端(队尾rear) 删除端(队头front)先进先出 #案例引入 数制的转换:非负十进制整数->等值八进制数 产生:从 ...
分类:
其他好文 时间:
2020-04-25 23:20:37
阅读次数:
76
泛型算法本身不会执行容器的操作,它们只会运行于迭代器之上,执行迭代器的操作。算法永远不会改变底层容器的大小,算法可能会该百年容器中元素的值,也可能在容器中移动元素,但永远不会直接添加或删除元素。迭代器可以完成向容器添加元素的效果,但宣发自身永远不会做这样的操作。 1.find 例:auto resu ...
分类:
其他好文 时间:
2020-04-24 00:58:36
阅读次数:
70
假如链表长度为5,有1,2,3,4,5五个元素,删除倒数第2个元素4。5-2=3,也就是指向被删除的元素的上一个元素,正好。 正确做法:多次循环: class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { Li ...
分类:
其他好文 时间:
2020-04-23 11:52:18
阅读次数:
50