
数据结构与算法(Python版)
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和作业。
CoreJT
中科院自动化所在读直博生,感兴趣的研究方向:文本分类、情感分析、机器阅读理解与问答系统以及对话系统。
展开
-
数据结构与算法(Python版) | (8) 递归(上)
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。 课程链接 1. 什么是递归 定义 递归是一种解决问题的方法,其精髓在于: 1)将问题分解为规模更小的相同问题, 2) 持续分解,直到问题规模小到可以用非常简单直接的方式来解决。 3) 递归的问题分解方式非常独特,其算法方面的明显特征就是:在算法流程中调用自身。 递归为我们提供了一种对复杂问题的优雅解决方案...原创 2020-04-28 12:01:55 · 1076 阅读 · 1 评论 -
数据结构与算法(Python版) | (7) 队列、列表OJ作业
OJ地址 1. 有序队列 def func(S): min_str = S #记录最小的字符串 for i in range(len(S)): #遍历字符串的长度 S = S[-1] + S[:-1] #每次把最后一个字符放在第一个位置 并拼接上剩余的字符 if S < min_str: #字符串可以直接比较大小...原创 2020-04-27 11:34:21 · 280 阅读 · 0 评论 -
数据结构与算法(Python版) | (6) 线性结构---队列、双端队列和列表
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。 课程链接 1. 队列抽象数据类型及Python实现 什么是队列? 队列是一种有次序的数据集合,其特征是: 1)新数据项的添加总发生在一端(通常称为“尾 rear”端) 2)现存数据项的移除总发生在另一端(通常称为 “首front”端) 当数据项加入队列,首先出现在队尾,随着队首数据项的移除,它逐渐接近队首...原创 2020-04-26 17:22:46 · 991 阅读 · 0 评论 -
数据结构与算法(Python版) | (5) 堆栈OJ作业
OJ地址 1. 有效的括号 class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self,item): self.items.append(ite...原创 2020-04-25 12:29:53 · 495 阅读 · 0 评论 -
数据结构与算法(Python版) | (4) 线性结构---堆栈
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。 课程链接 1. 什么是线性结构 线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继。 除了第一个没有前驱,最后一个没有后继;新的数据项加入到数据集中时,只会加入到原有某个数据项之前或之后;具有这种性质的数据集,就称为线性结构。 线性结构总有两端,在不同的情况下,两端的称呼也不同 有时...原创 2020-04-25 11:35:47 · 556 阅读 · 0 评论 -
数据结构与算法(Python版) | (3) OJ适应性测试
OJ题目 1. A/B问题 a = int(input()) b = int(input()) if b!=0: print("%.4f"%(a/b)) else: print("NA") 2. 打印实心矩形 m,n = list(map(int,input().split())) #输入只有一行 包含多个整数 for i in range(m): print("*...原创 2020-04-24 19:16:53 · 337 阅读 · 0 评论 -
数据结构与算法(Python版) | (2) 算法分析
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。 课程链接 1. 什么是算法分析 对比程序,还是算法? 如何对比两个程序? 看起来不同,但解决同一个问题的程序,哪个“ 更好”? 程序和算法的区别 算法是对问题解决的分步描述; 程序则是采用某种编程语言实现的算法,同一个算法通过不同的程序员采用不同的编程语言,能 产生很多程序。 累计求和问题 我们来看一段程...原创 2020-04-24 18:49:04 · 1886 阅读 · 0 评论 -
数据结构与算法(Python版) | (1)从C到Python
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和作业。 课程链接 相信大多数同学接触到第一门程序设计语言都是C语言,本篇博客用四个简单的例子,从C到Python进行过渡,对C和Python的区别有一个直观的认识。 1. Hello Word C语言(编译型语言)程序的执行包括三步:1)编译:把程序代码编译为机器码 2)链接:链接程序中引入的各种库 3)执行:执...原创 2020-04-12 14:45:24 · 1173 阅读 · 0 评论