
编程题目+面试题
文章平均质量分 67
享受Programming
这个作者很懒,什么都没留下…
展开
-
去除重复字符并排序
题目:去除重复字符并排序运行时间限制:无限制内容限制: 无限制输入: 字符串输出: 去除重复字符并排序的字符串样例输入: aabcdefff样例输出: abcdef利用hash表的思想#include#include#include #include #inclu原创 2015-08-07 16:43:16 · 1074 阅读 · 0 评论 -
替换空格
题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目地址:http://www.nowcoder.com/books/coding-interviews思路1:从头到尾遍历字符串,遇到空格将空格替换为‘%20’,注意相应移动后面的字符思路2:首先计算空格个数,获得替换后字原创 2015-08-05 17:01:39 · 354 阅读 · 0 评论 -
关于反转链表的问题
题目:输入一个链表,从尾到头打印链表每个节点的值。思路:1、最先想到栈的结构,符合先进后出的特点;2、递归与栈的关系,联想到使用递归的方法来实现(递归结构好好理解一下,感觉自己以前其实没有理解很清楚)3、用vector从头端插入的思想来解决代码如下:思路1的代码,利用栈的结构int ReverseList(ListNode *head){ stack stack; Li原创 2015-08-05 17:44:55 · 361 阅读 · 0 评论 -
二维数组的查找
【出处】http://www.cnblogs.com/zhuyf87/archive/2013/03/01/2938013.html题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:从二维数组的右上角的元素开始判断,因为此元素是它所在行的最大数,是它所转载 2015-08-05 16:09:19 · 295 阅读 · 0 评论 -
机器人的运动范围
【题目来源】http://www.nowcoder.com/books/coding-interviews/6e5207314b5241fb83f2329e89fdecc8?rp=3地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37)原创 2015-08-03 21:35:54 · 259 阅读 · 0 评论 -
青蛙跳台阶
【重点参考】http://www.cnblogs.com/heyonggang/p/3405089.html题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。这个问题正好符合了斐波那契数列的特点斐波那契(Fibonacci)数列定义如下:效率很低的解法:1234原创 2015-08-03 16:53:40 · 407 阅读 · 0 评论 -
关于链表操作的问题
【题目】输入一个链表,输出该链表中倒数第k个结点。#include#include#include #include #include #include #include #include #include #include #include #includeusing namespace std;struct ListNode { int val; stru原创 2015-08-14 17:47:14 · 365 阅读 · 0 评论 -
旋转数组的最小数字
旋转数组的最小数字参与人数:1020时间限制:1秒空间限制:32768K通过比例:15.74%最佳记录:0 ms|8552K(来自 冰天雨意)题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。原创 2015-08-13 20:31:04 · 325 阅读 · 0 评论 -
两个栈实现一个队列
【剑指offer】P59:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:画个图就懂了1、所有进入队列的操作,都用stack1的push来实现。然后就主要是讨论出队列的情况;2、如果stack2中此时为空,则将stack1出栈,然后进入到stack2中,stack最后一个元素输出,即为队列最前面的元素删除;3、如果stack2不为空,则直接原创 2015-08-13 19:47:17 · 397 阅读 · 0 评论 -
斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。说明:首先想到的是递归,因为斐波那契数列就是递归思想,递推式为f(n)=f(n-1)+f(n-2)(n大于等于2)但是!反复的递归效率太低了,导致程序一下子就会运行超时,因此,可以用循环来实现,将每次加法后的结果都记录下来即可。感觉有点空间换取时间的味道,不过有人写的空间复杂度为o(1),我也是没太想明白,有空再原创 2015-08-13 19:58:14 · 1147 阅读 · 0 评论 -
重建二叉树
重建二叉树参与人数:871时间限制:1秒空间限制:32768K通过比例:18.88%最佳记录:0 ms|8552K(来自 牛客游客)题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉转载 2015-08-13 19:06:31 · 198 阅读 · 0 评论 -
位运算相关题目
刷题刷到的,用位运算解决问题的题目,感觉确实不错啊1、输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。【说明】这个题以前刷题的时候遇到过选择题,没有把人家的思路记下来,今天又看到了,总结在这里x&(x-1)可以将整数最右边的1变成0,通过这个小技巧,我们只要循环判断n=n&(n-1)是否为0,即可统计1的个数。 int NumberOf1(int n) {转载 2015-08-13 20:45:24 · 330 阅读 · 0 评论 -
已知String类的定义,实现其函数体
【出处】宝典上的一道面试题http://www.cnblogs.com/AndyJee/p/4681941.htmlCString类的定义如下:1234567891011class CMyString{public: CMyStrin转载 2015-08-12 17:10:46 · 1437 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
总结得很好的一篇文章【出处】http://www.cppblog.com/vontroy/archive/2011/01/23/128301.html//两个数的最大公约数--欧几里得算法int gcd(int a, int b){ if (a swap(a, b); if (b == 0)转载 2015-08-10 22:58:57 · 617 阅读 · 0 评论 -
一道关于字符串处理的题
题目要求:按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”#include#include#include #include #include #include #include #include原创 2015-08-07 15:26:32 · 496 阅读 · 0 评论 -
strcpy手写代码
手写代码的能力要锻炼啊,面试被问到这样的问题了,总结一下:【出处】http://songlee24.github.io/2015/03/15/string-operating-function/1、strcpy手写代码#include#includechar s[123]={"1233232"},str[123];char* strcpy(char *to,char *fro转载 2015-08-21 15:30:26 · 1490 阅读 · 1 评论