
数据结构与算法(Python版)
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和作业。
CoreJT
中科院自动化所在读直博生,感兴趣的研究方向:文本分类、情感分析、机器阅读理解与问答系统以及对话系统。
展开
-
数据结构与算法(Python版) | (8) 递归(上)
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。课程链接1. 什么是递归定义递归是一种解决问题的方法,其精髓在于:1)将问题分解为规模更小的相同问题,2) 持续分解,直到问题规模小到可以用非常简单直接的方式来解决。3) 递归的问题分解方式非常独特,其算法方面的明显特征就是:在算法流程中调用自身。递归为我们提供了一种对复杂问题的优雅解决方案...原创 2020-04-28 12:01:55 · 1087 阅读 · 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 · 289 阅读 · 0 评论 -
数据结构与算法(Python版) | (6) 线性结构---队列、双端队列和列表
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。课程链接1. 队列抽象数据类型及Python实现什么是队列?队列是一种有次序的数据集合,其特征是:1)新数据项的添加总发生在一端(通常称为“尾 rear”端)2)现存数据项的移除总发生在另一端(通常称为 “首front”端)当数据项加入队列,首先出现在队尾,随着队首数据项的移除,它逐渐接近队首...原创 2020-04-26 17:22:46 · 1000 阅读 · 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 · 499 阅读 · 0 评论 -
数据结构与算法(Python版) | (4) 线性结构---堆栈
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。课程链接1. 什么是线性结构线性结构是一种有序数据项的集合,其中每个数据项都有唯一的前驱和后继。除了第一个没有前驱,最后一个没有后继;新的数据项加入到数据集中时,只会加入到原有某个数据项之前或之后;具有这种性质的数据集,就称为线性结构。线性结构总有两端,在不同的情况下,两端的称呼也不同有时...原创 2020-04-25 11:35:47 · 559 阅读 · 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 · 342 阅读 · 0 评论 -
数据结构与算法(Python版) | (2) 算法分析
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和OJ作业。课程链接1. 什么是算法分析对比程序,还是算法?如何对比两个程序?看起来不同,但解决同一个问题的程序,哪个“ 更好”?程序和算法的区别算法是对问题解决的分步描述;程序则是采用某种编程语言实现的算法,同一个算法通过不同的程序员采用不同的编程语言,能产生很多程序。累计求和问题我们来看一段程...原创 2020-04-24 18:49:04 · 1924 阅读 · 0 评论 -
数据结构与算法(Python版) | (1)从C到Python
本专栏主要基于北大的数据结构与算法教程(Python版)进行整理,包括课程笔记和作业。课程链接相信大多数同学接触到第一门程序设计语言都是C语言,本篇博客用四个简单的例子,从C到Python进行过渡,对C和Python的区别有一个直观的认识。1. Hello WordC语言(编译型语言)程序的执行包括三步:1)编译:把程序代码编译为机器码 2)链接:链接程序中引入的各种库 3)执行:执...原创 2020-04-12 14:45:24 · 1181 阅读 · 0 评论