随笔分类 - 数据结构与算法
摘要:在数组之后,链表结构(linked structure)可能是程序员最常用到的数据结构。和数组一样,链表结构是一个具体的数据类型,它实现了很多类型的集合,包括列表。 一、单链表结构和双链表结构 链表结构包含了链接到其他项的项。尽管各项中包含很多链接也是可能的,但链表结构的两种最简单的结构是单链表结构
阅读全文
摘要:一、数组 数组(array)表示的是可以在给定的索引位置访问或替代的项的一个序列。你可能认为,这表述和python列表的表述有点像。实际上,python列表的底层数据结构就是数组。尽管python程序员通常会在你想要使用数组的地方使用列表,但是在python和许多其他的编程语言中,集合中的实现结构主
阅读全文
摘要:输入一个矩阵(n*n),按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 限制: 0 <= matrix.length 0 <= matrix[i].length i
阅读全文
摘要:复杂度是衡量代码运行效率的重要的度量因素。 复杂度与计算机实际任务处理的效率 计算机通过程序去执行计算任务,也就是对输入数据的加工处理并得到结果的过程。对于相同的任务,不同的计算方法导致计算过程的复杂程度不同,比如: 假设一个任务,系统平均每秒新增10M数据,如果你的代码不能在1分钟内处理10M数据
阅读全文
摘要:队列:队列是先进先出。 import queue q = queue.Queue() q.put(1) q.put(2) q.put(3) q.put(4) print(q.get()) print(q.get()) print(q.get()) print(q.get()) 当队列为空时,使用ge
阅读全文
摘要:什么是算法? 算法(Algorithm):一个计算过程,解决问题的方法。 输入→算法→输出 时间复杂度 时间复杂度:用来评估算法运行效率的一个东西。 print('Hello World') #假如说这行代码运行时间是一个单位O(1) for i in range(n): # 这段代码的时间是O(n
阅读全文
摘要:栈stack 后进先出 class Stack(object): def __init__(self): self.stack = [] def push(self, value): # 进栈 self.stack.append(value) def pop(self): # 出栈 if self.
阅读全文
摘要:栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。 由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问。为了得到栈底的元素,必须先拿掉上面的元素。 对栈的两种主要操作是将一个元素压入栈和将一个
阅读全文