剑指offer
记录剑指offer的刷题记录与心得
andyL_05
EE 计算机视觉 机器学习 深度学习 算法
展开
-
二叉树的层序遍历、之字形打印问题
二叉树的层序遍历这是一道比较经典的问题,要求逐层遍历二叉树并打印节点,而且也有些变体。其实这不仅是一道考察对树形或图结构了解程度的问题,实现一个这样的函数其实能够帮助我们直观的打印一颗二叉树,在遇到复杂二叉树的问题时如果出现bug,也可以借助这种方式可视化出来调试。这个问题本身也有一些变体问题。如上图所示,这是一颗二叉树,我们以他为例讨论。1· 最直接的层序遍历简单的层序遍历只要从最上层...原创 2020-05-05 19:53:55 · 636 阅读 · 0 评论 -
剑指offer 51 数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如:输入数组 [7,5,6,4]输出 5分析:数组中(7,5), (7,6), (7,4), (5,4), (6,4)均构成逆序对因此共有5个。分析逆序对定义为排在前面的数比后面的数要大组成的数对,换言之,如果过我们对数组排序,发生了交换顺序的情况就...原创 2020-04-24 20:44:29 · 187 阅读 · 0 评论 -
剑指offer面试题 - 30 包含min函数的栈
包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min, push, pop的时间复杂度都是O(1)O(1)O(1)分析由于实现的是一个栈的数据结构,要求数据先进后出,如果我们对push进来的元素排序,显然就破坏了这一顺序;如果每次求最小值都遍历栈中所有元素,则min函数时间复杂度会为O(n)O(n)O(n).这一问题我们可...原创 2020-01-06 20:58:07 · 175 阅读 · 0 评论 -
剑指offer面试题 - 05 替换空格
替换空格题目描述请实现一个函数,把字符串中的每个空格替换成"%20"。例如,输入 “We are happy.”,输出“We%20are%20happy.”分析显然,最直观的解法就是从头到尾遍历输入字符串,遇到空格则进行替换,但是由于替换后的"%20"是3个字符,而原本的空格只有1个字符,替换过程中必然会出现需要将空格后的字符向后移动的情况。例如输入“We are happy.”进行第一个...原创 2019-12-17 19:43:21 · 143 阅读 · 0 评论 -
剑指offer面试题 - 04 二维数组中的查找
二维数组中的查找题目描述在一个二维数组中,每一行都按照从左至右递增的顺序排列,每一列都按照从上到下的顺序排列。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。分析以如下所示的二维数组(3x4)为例。2 4 5 94 7 12 145 11 25 30本题显然有暴力解法,也即顺序遍历这个二维数组,判断是否存在目标数字,对于n*m的数组,其时间复杂度...原创 2019-12-16 18:56:12 · 223 阅读 · 0 评论