摘要: 包含min函数的栈 1. 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 2. 示例 无 3. 解题思路 思路:利用一个辅助栈来存放最小值 栈 3,4,2,5,1 辅助栈 3,3,2,2,1 每入栈一次,就与辅助栈顶比较大小,如果小就 阅读全文
posted @ 2020-09-17 20:09 蜘蛛侠不会飞 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 顺时针打印矩阵 1. 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字 2. 示例 [[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], [13, 14, 15, 16]] 则依次打印出数字1,2,3,4,8,12,16,15,14, 阅读全文
posted @ 2020-09-17 20:03 蜘蛛侠不会飞 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 二叉树的镜像 1. 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 2. 示例 3. 解题思路 递归的方法:一开始遍历节点,直接交换它的两个子节点, 当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像 非递归方法: 使用队列,类似于层次遍历 4. Java实现 递归实现 /** pu 阅读全文
posted @ 2020-09-17 19:56 蜘蛛侠不会飞 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 树的子结构 1. 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 2. 示例 无 3. 解题思路 涉及树结构的题目,一般都使用递归方法 如果两棵二叉树 节点值不相同: 1-1: 递归遍历 A树左子树 1-2: 递归遍历 A 树右子树 如果两棵二叉 阅读全文
posted @ 2020-09-17 19:51 蜘蛛侠不会飞 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 合并两个有序的链表 1. 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 2. 示例 无 3. 解题思路 思路:非递归 比较两个链表的首结点,哪个小的的结点则合并到第三个链表尾结点,并向前移动一个结点。 步骤一结果会有一个链表先遍历结束,或者没 阅读全文
posted @ 2020-09-17 19:36 蜘蛛侠不会飞 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 反转单链表 1. 题目描述 输入一个链表,反转链表后,输出新链表的表头。 2. 示例 无 3. 解题思路 输入的链表头指针为None或者整个链表只有一个结点时,反转后的链表出现断裂,返回的翻转之后的头节点不是原始链表的尾结点。因此需要引入一个翻转后的头结点,以及一个指向当前结点的指针,一个指向当前结 阅读全文
posted @ 2020-09-17 19:21 蜘蛛侠不会飞 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 链表中倒数第k个结点 1. 题目描述 输入一个链表,输出该链表中倒数第k个结点。 2. 示例 无 3. 解题思路 使用双指针的方法: 如果在只希望一次遍历的情况下, 寻找倒数第k个结点, 可以设置两个指针 第一个指针先往前走k-1步, 然后从第k步开始第二个指针指向头结点 然后两个指针一起遍历 当地 阅读全文
posted @ 2020-09-17 18:57 蜘蛛侠不会飞 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 调整数组顺序使奇数位于偶数前面 1. 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 2. 示例 [1, 3, 4, 5, 8, 10] 转变成: [1, 3, 5, 阅读全文
posted @ 2020-09-17 18:37 蜘蛛侠不会飞 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 数值的整数次方 1. 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 2. 示例 简单,无 3. 解题思路 求base的exponent次方 首先,判断exponent 是否为负数,如 阅读全文
posted @ 2020-09-17 17:17 蜘蛛侠不会飞 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 二进制中 1 的个数 1. 题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 2. 示例 无 3. 解题思路 先了解一下计算机的编码形式: 计算机中,负数以其正值的补码形式表达 什么叫补码呢?这得从原码,反码说起。 原码:一个整数,按照绝对值大小转换成的二进制数,称为 阅读全文
posted @ 2020-09-17 16:29 蜘蛛侠不会飞 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 矩形覆盖 1. 题目描述 我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 2. 示例 比如n=3时,2*3的矩形块有3种覆盖方法: 3. 解题思路 还是找规律的一道题,归根结底还是 斐波那契数列 如果是n=1 阅读全文
posted @ 2020-09-17 16:00 蜘蛛侠不会飞 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 变态跳台阶 1. 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 2. 示例 无 3. 解题思路 相当于找规律的一道题目: 如果是1级 → 1种 如果是2级 → 一次跳2级 【2】,一次一次跳【1,1】, 2种 如果是3级 → 阅读全文
posted @ 2020-09-17 15:27 蜘蛛侠不会飞 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 跳台阶 1. 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。 一种变相的斐波那契数列 大家都知道斐波那契数列,前两项相加为第三项的值 如:0, 1, 1, 2, 3, 5, 8, 13...... 2. 示例 求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 3. 阅读全文
posted @ 2020-09-17 15:02 蜘蛛侠不会飞 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1. 题目描述 大家都知道斐波那契数列,前两项相加为第三项的值 如:0, 1, 1, 2, 3, 5, 8, 13...... 2. 示例 现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39 3. 解题思路 第一种方法:使用递归的形式 第二种方法:使 阅读全文
posted @ 2020-09-17 14:34 蜘蛛侠不会飞 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 从尾到头打印单链表值 1. 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 2. 示例 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0, 阅读全文
posted @ 2020-09-17 14:02 蜘蛛侠不会飞 阅读(113) 评论(0) 推荐(0) 编辑

俺的博客

https://blog.csdn.net/qq_40587575

俺的公众号