摘要:
题目描述 输入两棵二叉树A和B,判断B是不是A的子结构。我们约定空树不是任意一个树的子结构。 基本思路 要查找树A是否存在和树B结构一样的子树,我们可以分成两步:第一步在树A中找到和树B的根节点的值一样的节点R,第二步再判断树A中以R为根节点的子树是不是包含和树B一样的结构。 如上图所示:首先我们试 阅读全文
摘要:
题目描述 给定单向链表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路 在单向链表中删除一个节点,最常规的做法无疑是从链表的头结点开始,顺序的遍历查找要删除的节点,并在链表中删除该节点。这种思路由于需要顺序查找,时间复杂度自然就是$O(n)$了。 之所以需要从头开始查找,是因 阅读全文
摘要:
基本思路 第一种方法:当我们只有对9999或者999或者99或9加1的时候,才会在第一个数字的基础上产生进位,而其他所有情况都不好在第一个数字上产生进位。因此当我们发现在加1的时候第一个数字产生了进位,则已经是最大的n位数,此时increment返回true,循环终止。代码如下: 第二种方法:使用全 阅读全文
摘要:
思路分析: 首先分析把一个数减去1的情况,如果一个整数不等于0,那么改整数的二进制表示其中至少有一位是1.先假设这个数的最右边是1,那么减去1时,最后一位变成0而其他所有位都保持不变。也就是最后一位相当于做了取反操作,由1变成了0。 接下来假设最后一位不是1而是0的情况。如果该整数的二进制表示中最右 阅读全文
摘要:
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。 概念 一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下两个目的: 1、为数据库操作提供了 阅读全文
摘要:
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析: 在二叉树的前序遍历中,第一个数字总是树的根节 阅读全文
摘要:
题目描述 度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述: 首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000) 输出描述: 如果存在第三便宜的帽 阅读全文
摘要:
题目描述 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示。 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大。但是三角形必须满足:三个点的颜色要么全部相同,要么全部不同。 输入描述: 首先输入一个正整数N三维坐标系内的点的个 阅读全文
摘要:
二叉树的遍历是指按照某条搜索路径访问树中的每个节点,使得每个节点的均只被访问一次。由二叉树的递归定义,遍历一棵二叉树便要决定对根节点、左子树和右子树的访问顺序。常见的遍历次序有先序遍历、中序遍历和后序遍历。其中序指的是根节点在何时被访问。 先序遍历(PreOrder):若二叉树非空,则先访问根节点, 阅读全文
摘要:
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 分析 用一个布尔量控制从左到右还是从右到左的顺序;如果为真则他的左右孩子按照从左到右的顺序放入list中,否则按照从右到左的顺序,当本行结束之后 阅读全文