剑指Offer
肥龙宝宝
闲来无事写写文章,学做文化人儿
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串(剑指offer)
解题思路: 求解整个字符串的排列步骤: 1、求得所有可能出现在第一个位置上的字符,将第一个位子上的字符与后面的交换 2、固定第一个字符,求后面字符的排列,就涉及递归的问题了 class Solution { public: vector Permutation(string str) { vector result; //创建字符串数组 int原创 2017-02-24 21:04:52 · 13086 阅读 · 0 评论 -
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 思路总结:本题是结合二叉搜索树与双向链表的考点本质上是分为三个部分,左、右子树 和根节点 进行考虑,即将左子树转换成链表后,将尾节点与根节点连接,再将根节点带入递归表达式求右子树节点,最终实现转换,注意将尾节点移回到头部的节点。/* struct TreeNode { int va原创 2017-02-24 17:23:06 · 1496 阅读 · 0 评论 -
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径(剑指offer)
解题思路:遍历二叉树,采用递归的方法,将满足条件的路径压入一维数组当中,注意当找到满足条件的路径时,先将数组压入二维数组,然后将一维数组中的每个元数弹出,以存放新的路径。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left原创 2017-02-23 11:32:46 · 3594 阅读 · 0 评论 -
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
解题思路: 1、最简单方法,先排序,再取前k个,时间复杂度O(NlogN) class Solution { public: vector GetLeastNumbers_Solution(vector input, int k) { vector result; int len = input.size(); if(len !=0&&!原创 2017-02-24 22:03:34 · 1698 阅读 · 0 评论 -
求某个数在数组中出现的次数超过数组的一半
解题思路: 1、某个数值在数组中出现的次数超过数组的一半,言下之意就是,该数比剩下所有的数的个数和都要来的大,因此借助两个变量,一个result 来存放结果,一个用来计result的数,遍历数组,遇到与result相等的数时,计数值+1,遇到与之不同的数时计数值-1,当计数值为0时,获取新的result,直到最后,一个使得计数值为1的数就是结果。 class Solution { public原创 2017-02-24 21:37:52 · 463 阅读 · 0 评论 -
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
解题思路: /* struct RandomListNode { int label; struct RandomListNode *next, *random; RandomListNode(int x) : label(x), next(NULL), random(NULL) { } }; */ class S原创 2017-02-25 11:14:01 · 1628 阅读 · 0 评论 -
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。剑指Offer(32)
解题思路: 先两两比较,例如m、n,确定哪个应该排在前面,哪个应该排在后面,比较的规则就是mn与nm哪个更小,利用排序函数将小的数放在字符串数组的前面,最后拼接字符串以输出。(注意大数的问题,因此将数值装换为字符串) class Solution { public: static bool compare(const string& s1, const string& s2)原创 2017-02-26 20:47:00 · 2263 阅读 · 0 评论
分享