![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
阿郑zzz
尽力过好每一天
展开
-
LeetCode 剑指Offer 数据结构之 链表 总结 Part1
LeetCode 剑指Offer 数据结构之 链表 总结 Part1链表类的题目往往涉及到双指针(快慢),辅助栈,哈希表,递归等算法剑指Offer中涉及到6道题,文本进行总结:链表的类定义:class ListNode: def __init__(self, x): self.val = x self.next = None # 有时候还有不止一个链接 此时可以类比为二叉树,图等结构第一题:https://leetcode-cn.com/原创 2020-09-13 23:54:07 · 127 阅读 · 0 评论 -
LeetCode 剑指Offer 数据结构之 动态规划 总结 Part1
LeetCode 剑指Offer 数据结构之 动态规划 总结 Part1动态规划问题有着鲜明的特点,往往以求最大值,搜索最优结果为目的。在剑指Offer中有6道题。构建问题时,可以先确定问题的动态规划状态空间的维度,是一维,还是二维。然后确定状态空间的定义,更新保留是全局最优,还是更新保留一端,最后确定边界条件和状态转移方程,状态转移方程往往是多条件分支的,条件的判断涉及到一些其他的数据结构知识。多数情况下以上基础的动态规划建立后,可以进行状态空间和转移方程上的优化,尽量将状态空间优化为常量进行更新,转移原创 2020-09-06 17:22:22 · 238 阅读 · 2 评论 -
LeetCode 剑指Offer 数据结构之 递归 总结 Part1
LeetCode 剑指Offer 数据结构之 递归 总结 Part1递归算法主要应用于树结构的搜索与遍历。其他方面也有一些经典的问题,比如斐波那契数列,跳台阶等,很多问题中动态规划都能替代递归算法。本章将对剑指Offer题库中几道递归算法考题进行总结,记录一些对于递归算法的入门理解,同时简单的与动态规划解法进行一些对比。关于动态规划的部分将在新的文章中进行总结。递归算法核心在于函数中重复调用本函数,明确终止条件+下一次的函数调用输入(递推公式产生)即可剑指 Offer 07:重建二叉树输入某二叉树原创 2020-09-06 16:21:33 · 108 阅读 · 0 评论 -
LeetCode 剑指Offer 数据结构之 哈希表 总结 Part1
LeetCode 剑指Offer 数据结构之 哈希表 总结 Part1python中的哈希表主要涉及到字典和集合,剑指Offer中涉及到3道题,今天来做一个总结。哈希表的优点是查找时间降低为O(1),主要出现在问题中涉及到“重复”,“不重复”,“唯一”等要求。一般哈希表的考察会和其他算法,数据结构相结合。剑指Offer03:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请原创 2020-09-06 14:09:47 · 131 阅读 · 0 评论 -
LeetCode 剑指Offer 数据结构之 树 总结 Part2
LeetCode 剑指Offer 数据结构之 树 总结 Part2经典问题1)遍历2)树深度3)重建树4)对称树5)子树匹配6)二叉查找树遍历问题 补充DFS(一般采用递归) 深度优先的遍历在此补充非递归方式的三种遍历先序遍历:def bin_tree_pre_order_traverse1(root): ''' 利用1个栈实现 ''' res = [] s1 = [] s1.append(root) while s1:原创 2020-08-20 15:00:26 · 109 阅读 · 0 评论 -
LeetCode 剑指Offer 数据结构之 树 总结 Part1
LeetCode 剑指Offer 数据结构之 树 总结 Part1经典问题1)遍历2)树深度3)重建树4)对称树5)子树匹配6)二叉查找树遍历问题对应的题目是剑指 Offer 32 - I,剑指 Offer 32 - II,剑指 Offer 32 - III,剑指 Offer 34DFS(一般采用递归) 深度优先的遍历三种:先序 根 左 右(目前感觉用DFS先序走起比较多)def preorderTraversal(root): """ :type root: T原创 2020-08-20 00:58:30 · 127 阅读 · 0 评论