搜索
文章平均质量分 55
huohaifeng
这个作者很懒,什么都没留下…
展开
-
矩阵特殊运算
//给一个矩阵,其运算如下:如果对其中某一个元素加1,则上下左右相邻位置的某一个元素也要加1//判断一个矩阵是否可以由全0的矩阵运算出来//输入矩阵,指定相应的减法运算,就是矩阵某个位置减1,相邻某个位置也减1,看能否出现全0元素#include#includeusing namespace std;#define HEIGHT 4#define WIDTH 4int a原创 2013-09-15 11:27:12 · 237 阅读 · 0 评论 -
8皇后
/*8皇后*/#include "stdafx.h"#include using namespace std;#define N 8int cnt;bool legal( int list[] , int num , int cur_step ){ int i; for( i = 1 ; i < cur_step ; i ++ ) { //行不冲突,对角线不冲突原创 2013-10-08 19:21:37 · 193 阅读 · 0 评论 -
旋转数组中的最小元素
//在旋转的有序数组中找最小值#includeusing namespace std;int search( int list[] , int length , const int v ) { int s = 0; int e = length; while( s <= e ) { int mid = ( s + e ) / 2; if( list[ mid ] == v )原创 2013-09-19 20:13:28 · 151 阅读 · 0 评论 -
找字符串里最长的对称子串
/*题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串 “ google ” ,由于该字符串里最长的对称子字符串是 “ goog ” ,因此输出 4 。*///当然可以遍历字符串,在每个字符处,向左右两方查找字符,看其是否相等//下面递归地做一下#include#include using namespace std;int max_length;原创 2013-09-17 20:37:10 · 295 阅读 · 0 评论 -
输出1到最大的N位数
//非递归方法/*#includeusing namespace std;#define N 3void print( int a[] , int digit_len ) { int i = digit_len; while( i >= 0 ) { cout << a[ i ]; i --; } cout << endl;}int main() { int a原创 2013-09-17 19:06:03 · 201 阅读 · 0 评论 -
中序、先序、后序的互转
/************************************************************************//* 中序先序转后序 *//********************************************************原创 2013-09-17 21:20:47 · 217 阅读 · 0 评论 -
判断出栈顺序是否合法
/*题目:输入两个整数序列。其中一个序列表示栈的 push 顺序,判断另一个序列有没有可能是对应的 pop 顺序。为了简单起见,我们假设 push 序列的任意两个整数都是不相等的。比如输入的 push 序列是 1 、 2 、 3 、 4 、 5 ,那么 4 、 5 、 3 、 2 、 1 就有可能是一个 pop 系列。因为可以有如下的 push 和 pop 序列:push 1 , pu原创 2013-09-17 15:40:08 · 345 阅读 · 0 评论 -
横向、纵向递增的二维数组的查找
/*二维数组,横向纵向均递增,如何在其中查找s*/#includeusing namespace std;#define N 10#define M 10int main() { int a[ N ][ M ]; int i , j; for( i = 0 ; i < N ; i ++ ) { for( j = 0 ; j < M ; j ++ ) { cin >>原创 2013-09-16 22:25:29 · 261 阅读 · 0 评论 -
括弧匹配方式有几种?
/*四对括号可以有多少种匹配排列方式?比如两对括号可以有两种 : ( ) ()和( ( ))*/#includeusing namespace std;void dfs( int left , int right , int length , char str[] ) { if( right == length ) { //如果右括号数量等于n,那就意味着一种匹配模式找到了原创 2013-09-16 15:50:25 · 346 阅读 · 0 评论 -
求子集
#include using namespace std;int _sum;int n;int list[ 4 ] = { 1 , 2 , 5 , 10 };void dfs( int ans[] , int depth , int length , int cur_sum ){ if( depth == 4 ) { int i; if( length == 0 ) {原创 2013-09-16 08:54:54 · 185 阅读 · 0 评论 -
递归地颠倒一个栈
#includeusing namespace std;void conv( int a[] , int depth , int max_depth ){ if( depth < max_depth ) { int i; int t = a[ depth ]; for( i = depth ; i > 0 ; i -- ) { a[ i ] = a[ i - 1];原创 2013-09-15 17:37:29 · 253 阅读 · 0 评论 -
1、2、5、10分钱组合成n分钱
/*有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?*/#include using namespace std;int _sum;int n;int list[ 4 ] = { 1 , 2 , 5 , 10 };void dfs( int ans[] , int depth , int length , int cur_sum原创 2013-09-15 22:27:33 · 327 阅读 · 0 评论 -
组合数
/*编程求解:输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中 随意取几个数 ,使其和等于 m , 要求将其中所有的可能组合列出来 .*/#includeusing namespace std;void dfs( bool flag[] , const int depth , const int max_depth , const int sum , i原创 2013-09-15 13:00:29 · 195 阅读 · 0 评论 -
旋转数组的查找
#includeusing namespace std;int result;void _search( int list[] , int start , int end , int s ) { if( start <= end ) { int m = ( start + end ) / 2; if( list[ m ] == s ){ result = m; re原创 2013-09-14 22:04:40 · 157 阅读 · 0 评论 -
对一个整数数组,求最大的(a[i]-a[j])(0<=i<j<=n-1)
/*对一个整数数组,求最大的(a[i]-a[j])(0<=i<j<=n-1)*/#include "stdafx.h"#include using namespace std;typedef struct node{ int large; int small;}node;int max_;node _get( int list[] , int s , int e ){原创 2013-09-29 11:33:43 · 203 阅读 · 0 评论