题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。
思路:首先,看到题目就要想到先把整数转换为字符串,因为结果肯定是一个大数。然后分析这道题目的本质,其实就是要对转换后的字符串进行排序,然后顺序输出即可,至于排序的方式需要自己定义。举个例子,题目中的字符串“3...
分类:
编程语言 时间:
2015-08-08 10:36:23
阅读次数:
138
题目:输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则打印由字符a,b,c所能排列出来的所有字符串:abc,abc,bac,bca,cab,cba...
分类:
编程语言 时间:
2015-08-07 19:47:10
阅读次数:
118
题目:输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建新的结点,只能调整树中结点指针的指向。
比如如下图中的二叉搜索树,则输出转换之后的排序双向链表为:
在二叉树中,每个结点都有两个指向子节点的指针。在双向链表中,每个结点也有两个指针,他们分别指向前一个结点和后一个结点。由于这两种结点的结构相似,同时二叉搜索树也是一种排序的数据结构,因此在理论上有可能实现二叉搜...
分类:
编程语言 时间:
2015-08-07 09:41:48
阅读次数:
153
题目1519:合并两个排序的链表题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。(hint: 请务必使用链表。)输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行为两个整数n和m(0 2 #include 3 u.....
分类:
编程语言 时间:
2015-08-06 11:03:26
阅读次数:
119
//和剑指offer程序基本一致,不过print和进位两部分合并在一个程序中//如果把其分拆,进行适当的整理,代码会更加整洁void PrintToMaxOfDigitsN(int n){ if (n = 0; i--) { if ('9' ...
分类:
其他好文 时间:
2015-08-05 21:52:25
阅读次数:
86
题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶结点所经过的所有的结点形成一条路径。
如下图,输入二叉树和整数22,则打印出两条路径,第一条路径包含结点10,12,第二条路径包含的结点为10,5,7.
一般的数据结构和算法的教材都没有介绍树的路径,因此对大多数应聘者而言,这是一个新概念,也就很难一下子想出完整的解题思路。这个时候我们可以...
分类:
编程语言 时间:
2015-08-05 10:45:37
阅读次数:
2205
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。
例如输入数组{5,7,6,9,11,10,8}则返回true,因为这个整数序列是下图二叉树的后序遍历的结果。如果输入的数组是{7,4,6,5},由于没有哪颗二叉搜索树的后续遍历的结果是这个序列,因此返回false。
在后序遍历得到的序...
分类:
编程语言 时间:
2015-08-04 21:02:02
阅读次数:
204
拷贝构造函数一个小例子 最近在《剑指Offer》上看到了一道题(程序如下),要求我们分析编译运行的结果,并提供3个选项: A. 编译错误; B. 编译成功,运行时程序崩溃;C. 编译运行正常,输出10。 1 #include 2 using namespace std; 3 4 class A...
分类:
其他好文 时间:
2015-08-04 12:40:16
阅读次数:
227
进度管理: 剑指offer: 算法: 计算机组成原理:概率论: 操作系统: LeetCode: (每日1.5小时)——算法思考 牛客网:(每日2-3份题)——选择题 笔试真题:前两天,每日一套,后面递增
分类:
其他好文 时间:
2015-08-04 09:18:01
阅读次数:
99
题目:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11.
这道题实质上考察的就是树的遍历算法,只是这种遍历不是我们熟悉的前序、中序或者后序遍历。由于我们不太熟悉这种按层遍历的方法,可能已下载也想不清楚遍历的过程。
因为按层打印的顺序决定应该先打印的根节点,所以我们从树的根节点开始分析。为了接下来能够打印8...
分类:
编程语言 时间:
2015-08-03 22:53:35
阅读次数:
223