11 2020 档案
摘要:654、寻找最大二叉树 基本思想: 构造二叉树,根节点要做的就是想办法把自己构造出来, 先找到数组中的最大值,然后再用递归调用左右数组构造左右子树 前序遍历 具体实现: 1.使用max函数找到数组中的最大值和对应的索引 max_val = max(nums) max_idx = nums.index
阅读全文
摘要:226.翻转二叉树 基本思想: 把二叉树上的每一个节点的左右子节点进行交换,最后的结果就是完全翻转之后的二叉树。 具体实现: 1.递归的参数和返回值 参数:根节点 返回值:无 2.递归结束条件 当前节点为空时返回 3.单层递归逻辑 前序遍历 先交换再递归 (1)使用前序遍历,交换某一个节点的左右子节
阅读全文
摘要:A.快速排序 1.算法逻辑 若要对 def quick_sort(alist,first,last): if first >= last: # 递归结束条件 return high = last low = first media_data = alist[first] while low < hi
阅读全文
摘要:A.冒泡排序(抄的别人的) 1.冒泡排序是一种简单的排序算法。 它重复地遍历要拍学的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法
阅读全文
摘要:一、栈 A、顺序存储结构 # 自定义异常 class StackUnderflow(ValueError): # 栈下溢(空栈访问) pass # 列表头作为栈底,列表尾作为栈顶 # 缺点:1、扩大存储需要做一次高代价的操作 2、需要完整的大块存储区域 # 使用list作为栈来使用 # lst =
阅读全文