
剑指offer
feengg
这个作者很懒,什么都没留下…
展开
-
剑指offer-替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 代码如下 class Solution { public: void replaceSpace(char *str,int length) { int num_ = 0; in...原创 2018-11-09 16:41:50 · 274 阅读 · 0 评论 -
剑指offer-把数组排成最小的数
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 代码如下 #include "JzOffer.h" string Int2Str(int num); //定义结构 struct StrNum { string strnum; StrNum(cons...原创 2018-11-07 15:35:31 · 145 阅读 · 0 评论 -
剑指offer-求丑数
题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 代码如下 int Min(int a, int b, int c); //顺次加1递归版 bool IsUglyNumber(int number) { if(number == 2 || n...原创 2018-11-07 16:11:46 · 202 阅读 · 0 评论 -
剑指offer-两个链表的第一个公共结点
题目描述 输入两个链表,找出它们的第一个公共结点。 代码如下 //输入两个链表,找出它们的第一个公共结点。 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; void ListConstructor(ListNode* &pHead...原创 2018-11-07 16:13:59 · 126 阅读 · 0 评论 -
剑指offer-最小的K个数
题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 代码如下 void GetLeasetNumbersOfK2(vector<int>& input, vector<int>& output, int lo, int hi, int k); void quickSor...原创 2018-11-07 16:15:39 · 133 阅读 · 0 评论 -
剑指offer-数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 输入描述: 题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 对于%100的数据...原创 2018-11-08 14:04:52 · 145 阅读 · 0 评论 -
剑指offer-连续子数组的最大和
题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序...原创 2018-11-08 14:12:08 · 244 阅读 · 0 评论 -
剑指offer-统计一个数字在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数。 代码如下 //统计一个数字在排序数组中出现的次数 int Helper(const vector<int>& data,int lo, int hi, int k) { while(lo < hi) { int mid = (lo + hi) >> 1; if(k < data...原创 2018-11-08 14:15:51 · 177 阅读 · 0 评论 -
小米笔试-电话号码分身
题目描述 继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"原创 2018-11-08 14:21:13 · 321 阅读 · 0 评论 -
剑指offer-从尾到头打印链表
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 代码如下 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }...原创 2018-11-09 16:45:46 · 282 阅读 · 0 评论 -
剑指offer-重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 代码如下 /** * Definition for binary tree * struct TreeNode { * int v...原创 2018-11-09 16:49:17 · 299 阅读 · 0 评论 -
剑指offer题目汇总
1.数值的整数次方 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 代码如下 class Solution { public: double Power(double base, int exponent) { if(exponent == 0) return 1; return expon...原创 2019-03-25 11:25:11 · 416 阅读 · 0 评论