上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页
摘要: 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路 要求实现一个O(1)时间复杂度的返回最小值的栈。正常情况下,栈的push,pop操作都为O(1),但是返回最小值,需要遍历整个栈,时间复杂度为O(n),所以这里需要 空间换时间 的 阅读全文
posted @ 2020-08-12 14:51 不学无墅_NKer 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 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,13,9,5,6,7,11,10. 思路 这道题没有很 阅读全文
posted @ 2020-08-11 17:03 不学无墅_NKer 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 思路 先 前序或层序遍历 这棵树的每个节点,如果遍历到的节点有子节点,就交换它的两个子节点。当交换完所有非叶节点的左右节点之后,就得到了树的镜像。 既然是二叉树的遍历,那么就有 递归实现 和 非递归实现 两个版本 ~ 解法1(递归实现) /** 阅读全文
posted @ 2020-08-10 17:11 不学无墅_NKer 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 分析 若树B是树A的子结构,则子结构的根节点可能为树A的任意一个节点。因此,需要完成以下两步操作: 第一步:在树A中找到和树B的根节点的值一样的节点 R (也就是树A的遍历); 第二步:判断树A中以 阅读全文
posted @ 2020-08-10 15:32 不学无墅_NKer 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路 可以使用递归实现,也可以用非递归。 注意:需要考虑到很多很多特殊情况!!如边界条件;链表中的值有相同的情况;某一个链表中连续几个值都比另一个链表的当前值小(大)。 解法1(递归)思路:当得到 阅读全文
posted @ 2020-08-09 23:04 不学无墅_NKer 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,反转链表后,输出新链表的表头。 思路 为了反转一个链表,需要调整链表中指针的方向。当调整节点 i 的指针指向时,需要知道节点 i 本身,还需要知道 i 的前一个节点 h,因为我们需要把节点 i 的指针指向节点 h 。同时,我们还需要提前保存 i 原来的下一个节点 j ,以防止 阅读全文
posted @ 2020-08-09 15:54 不学无墅_NKer 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个链表,输出该链表中倒数第k个结点。 分析 思路1:遍历链表两次,第一次统计出链表节点的个数n,第二次再从前往后找到第n-k+1个节点,即为所求。 思路2:只需要遍历链表一次。定义两个指针(快指针和慢指针),先让快、慢指针都指向头节点,然后让快指针向前走k-1步,指向第k个结点;接着 阅读全文
posted @ 2020-08-08 20:54 不学无墅_NKer 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 分析 注意题中要求“相对位置不变”,即保持稳定性。 方法1:最简单的思路是开辟额外数组,遍历一次数组,遇到奇数直接放入新 阅读全文
posted @ 2020-08-08 16:18 不学无墅_NKer 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 分析 看似简单,需要注意的小细节比较多!!首先要充分考虑好边界条件,还要考虑到如果指数exponent为负数的情况。 解法1(传统解法, 阅读全文
posted @ 2020-08-08 11:45 不学无墅_NKer 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目描述 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 分析 考察位运算。 如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影 阅读全文
posted @ 2020-08-07 22:00 不学无墅_NKer 阅读(125) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页