11 2017 档案
摘要:题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路:注意首先需要联想遍历,在遍历的过程中将左右节点进行交换。先判断根节点是否为空
阅读全文
摘要:题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 这题分两步: 第1:在树A中找到和树B的根节点的值一样的节点R,注意树的节点值可以有多个相同的值。 第2:判断树A中以R为根节点的子树是不是包含和B一样的树结构。 这题难在递归基和判断树节点为空该返
阅读全文
摘要:题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路就是归并算法的思路,注意首先判断两个链表节点都不为空,判断大小while循环之后,要看哪个链表节点不为空,使用哨兵节点的方法处理头节点。 /* struct ListNode { int va
阅读全文
摘要:题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路:要保证两个链表之间相差k个,这样计算移动才是正确结果,这题受到以前做的题目的影响,面试的时候一定要问清楚k会不会大于总长度,如果大于总长度是取模还是出错,这题就是返回错误信息。 输入一个链表,输出该链表中倒数第k个结点。 思路:要保证两个链
阅读全文
摘要:题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 冒泡排序的思路:时间复杂度是N^2; 判断只要偶数在奇数前面就交换,并且每次排好的就放在最后,逐渐沉淀下去。 cla
阅读全文
摘要:注意第一个for循环i的范围是[1,sz - 1]; 第二个for循环的范围是[0,sz - i]; 因为是j+ 1<n,所以j < n - 1,所以i最小从1开始。
阅读全文
摘要:题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 常规解法: 注意1double类型不能直接和0进行比较; 2 要判断底数是否为0,要判断指数是否为负数;用一个变量先记录,然后统一使用正的指数进行计算。 3 最后如果是负数需要将
阅读全文
摘要:题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 补充知识点:左移运算符 m << n表示把m左移n位,左移的时候最左边的位舍弃掉,最右边的位补0。 右移运算符 m >> n表示把m右移n位,右移的时候如果是负数最左边的位补上1,如果是整数则在最左边补上0,最右边的位丢弃掉
阅读全文
摘要:题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 注意n==0的时候有0中方法。 class Solution { public: int rectCover(int number) { if(number =
阅读全文
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 follow up问题要思考前面解决问题的方法,这题就是用数学方法统计出结果的例子。 f(n) = f(n - 1) + f(n - 2) + f(n - 3) + ... +
阅读全文
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 注意这里n应该从0开始,0个台阶1中跳发,2个台阶2中跳发。 class Solution { public: int jumpFloor(int number) { if(number == 0)
阅读全文
摘要:题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 要记住第n项,指的是1开始,因为下标会小一个数,下标从0开始。 class Solution { public: int Fibonacci(int n) { int a = 1; int b =
阅读全文
摘要:题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 注意可能有
阅读全文
摘要:题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:一个栈只负责压入元素,另一个栈在不为空的情况下弹栈,为空的时候先将Stack1全部压栈,再弹出结果。 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路:一个
阅读全文
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二
阅读全文
摘要:题目描述 输入一个链表,从尾到头打印链表每个节点的值。 思路:反过来的方法使用stack就可以,或者使用递归方法实现。 链表指向下一个使用next指针,不要直接使用++pointer的操作。因为链表不一定是连续存储的。 1.stack /** * struct ListNode { * int va
阅读全文
摘要:题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 记忆:找到空格数量,找到copy后最后一个字符的位置,然后使用一个for循环,中间ij变量,分为有空格和无空格的拷贝。记住需要对str
阅读全文
摘要:题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:该题目不是下面一行每一个数字都大于上面一行的数字,1,2,3,4;2,3,4,5. 记忆:一个while循环,判断条
阅读全文
摘要:第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流。目前为止,我们学过两种改变控制流的方式: 1)跳转和分支; 2)调用和返回。 但是上面的方法只能控制程序本身,发生以下系统状态的变化复杂问题时就没法使用上面的方法控制: 数据从磁盘或者网络适配器到达 指令除以了零 用户按下 ct
阅读全文
摘要:今天在学习I/O多路复用的时候,发现可以使用GDB调试,而且还可以使用GDB调试某个进程的程序,瞬间涨姿势了~,总结一下常用的GDB调试方法。 用GDB调试程序 gdb 调试利器 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的
阅读全文
摘要:1. 文件描述符的本质是数组元素的下标 右侧的表称为i节点表,在整个系统中只有1张。该表可以视为结构体数组,该数组的一个元素对应于一个物理文件。 中间的表称为文件表,在整个系统中只有1张。该表可以视为结构体数组,一个结构体中有很多字段,其中有3个字段比较重要: 左侧的表称为文件描述符表,每个进程有且
阅读全文

浙公网安备 33010602011771号