文章分类 - 算法和数据结构
算法和数据结构
摘要:搜索概念 遍历树结构和图结构的方法 必须访问到每个节点而且每个节点只能访问一次 遍历节点的顺序不同分成了深度优先搜索和广度优先搜索 深度优先搜索 通过递归或者手动维护一个栈来实现 递归调用的普通循环遍历的执行流程的区别 1.普通循环是依次执行必须等当次循环完毕后再执行下一次循环 2.递归是不需要等当
阅读全文
摘要:树结构的来源 树是一种二维的数据结构 它是由链表这个一维数据结构进化而来 一个链表中每个元素有多个next指针就升级成了二维数据结构树 二叉树 每个元素有且只有两个next指针,指向两个不同的子元素 二叉树的遍历 1.前序遍历 》根左右 2.中序遍历 》 左根右 3.后序遍历 》 左右根 前中后序遍
阅读全文
摘要:自顶向下编程范式 关键是要先解决最上层的主干逻辑 1.首先思考主干逻辑,不要纠结于具体细节 2.主干逻辑编写好后再一步一步实现主干逻辑的子函数 cpu能执行的指令类型 if else 条件判断指令 for while recursion函数递归 循环执行指令 所有的程序都是基于以上两种类型的指令来实
阅读全文
摘要:数组结构 代码实现 list=[], int a[100] 一块连续的内存空间来存储数组中的所有元素 查找元素的时间复杂度是O(1) 但是添加和删除元素的时间复杂度是O(n) 链表结构 为了解决数组添加元素和删除元素时间复杂度为O(n)而产生的数据结构和数组不同的是链表中的每个元素除了值以外还包含一
阅读全文
摘要:时间复杂度分析 时间复杂度的全称是渐进时间复杂度,表示算法的执行时间与数据规模之间的增长关系 直接看某个函数或者代码根据n的不同会执行多少次 常用的时间复杂度表示: O(1) Constant Complexity 常数复杂度 O(logN) Logarithmic Complexity 对数复杂度
阅读全文
摘要:1.安装leetcode插件 2.配置leetcode插件 3.使用leetcode插件 以上是全部配置步骤
阅读全文
摘要:自顶向下编程范式 关键是要先解决最上层的主干逻辑 1.首先思考主干逻辑,不要纠结于具体细节 2.主干逻辑编写好后再一步一步实现主干逻辑的子函数 实例操作 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写 设计步骤 1.先想好整个入口函数的整体逻辑 1.先过滤
阅读全文