
各类习题
文章平均质量分 79
sicofield
这个作者很懒,什么都没留下…
展开
-
基于partition函数解答某些编程题的思想
快速排序的核心就是partition函数,我们可以对该函数的接口作适当的改变,来运用修改过的partion函数解决一些编程算法。 这里举两个例子,这两个例子所用的partition函数如下所示:int randomRange(int start,int end){ return rand()%(end-start+1)+start;}int Partition(int原创 2013-06-02 21:39:04 · 2003 阅读 · 1 评论 -
两道关于位操作的面试题
最近看到两道面试题,用到了同一个为操作公式:XXXX1000&(XXXX1000-1)=XXXX0000。1.输入一个数字判定该数字是否是2^N类型。#include using namespace std;bool func1(int a);int main(){ int ary[5]={9,16,57,256,1024}; for (int i=0;i<5;i+原创 2013-04-19 15:52:10 · 1568 阅读 · 1 评论 -
关于链表算法题的双指针
经常能够碰到链表的题,当用一个指针遍历来解决问题的时候,不是无法解决就是效率不佳,典型的就是需要多次遍历且需要额外的存储空间。在这种情况下,可以尝试用两个指针来遍历链表,而两指针遍历链表又可以分为两种情况:1、让其中一个指针遍历快一点,比如一次在链表中走上两步;2、让其中一个指针现在链表中走上若干步。 这里举三个链表相关的题目。1、 判定链表中是否环 第一种方法原创 2013-06-01 20:26:48 · 4407 阅读 · 0 评论 -
字符串四则运算表达式的计算(华为机试)
最近做了一道华为的机试题。感觉自己的方法比网上的简洁。3. 简单四则运算问题描述:输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值注1、表达式只含 +, -, *, / 四则运算符,不含括号2、表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况3、要考虑加减乘除按通常四则运算规定的计算优先级4、除法用整数除法,即仅保留除法运算结果的整数原创 2013-05-09 21:48:01 · 14300 阅读 · 12 评论 -
模拟循环和递归(if-else)的方法
题目一:求1+2+3+4+5……,要求不能使用乘法和中间变量。 分析:不用中间变量那就用递归的栈来代替。int Sum(int n){ if (n==0) return 0; else return 1+Sum(n-1);}题目二:求1+2+3+4+5……,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断原创 2013-06-09 20:11:39 · 3088 阅读 · 0 评论 -
8皇后问题
8皇后问题可以用全排列和dfs来做。其中关键的问题就是如何判定是否在同一条斜线上。也就是经过任意量皇后的直线的斜率不为1或者-1。全排列算法判定皇后是否在同以列上可以用任意两皇后的列差的绝对值不为行差绝对值。而进行dfs,可以另外开辟两个数组进行优化,分别表示左斜线和右斜线。注意到n*n的棋盘上,在同一左斜线上的点其行列坐标和相等;在右同一右斜线上的点,其行列坐标差相等,但是会出现负数的情况,所以原创 2013-09-13 14:15:31 · 1331 阅读 · 0 评论