算法
北方
我是北方的天空漂泊的那片最绚烂的云
展开
-
求字符串的全排列
思想:这是一个n!的问题 http://topic.csdn.net/u/20080129/13/32d87799-ad7f-48ef-8111-6e65bb2e8151.html比如:abcd四个字符,首先,考虑放在第一个位置的字符,将第一个字符与第一,二,三,四个字符交换。1-1:abcd1-2:bacd1-3:cbad1-4:dbca其次,考虑第2到n个字符转载 2011-11-20 21:29:12 · 335 阅读 · 0 评论 -
假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变。时空复杂度要求分别为:o(n)和o(1)。
题目:假设一整型数组存在若干正数和负数,现在通过某种算法使得该数组的所有负数在正数的左边,且保证负数和正数间元素相对位置不变。时空复杂度要求分别为:o(n)和o(1)。两种实现方法:(一)用一个游标,从前往后遍历,第一次遇到负数则继续,遇到正数则记录并接着走,再遇到负数则与刚记录的正数互换,并将记录后移一位,这样遍历完成的时候移位也完成了。(二)用两个游标,一个位于数组头,往后原创 2011-12-23 12:04:11 · 2618 阅读 · 0 评论 -
杭电1004
在网上看到一个写地很好的版本,学习完了,总结一下,实现思路是这样的:用两个数组,一个保存颜色,另一个保存每个颜色对应的次数;实现过程---来了一个颜色,跟颜色数组里的每一个比较,如果相同则将与颜色数组中该元素的位置对应的次数数组的元素加1,然后再把这个新来的颜色添加到颜色数组里面,这样一来,在颜色数组中每个颜色出现第一次的位置对应的次数数组元素的值就是该颜色出现总次数-1.原创 2011-12-06 21:34:52 · 917 阅读 · 1 评论 -
杭电1004
在网上看到一个写地很好的版本,学习完了,总结一下,实现思路是这样的:用两个数组,一个保存颜色,另一个保存每个颜色对应的次数;实现过程---来了一个颜色,跟颜色数组里的每一个比较,如果相同则将与颜色数组中该元素的位置对应的次数数组的元素加1,然后再把这个新来的颜色添加到颜色数组里面,这样一来,在颜色数组中每个颜色出现第一次的位置对应的次数数组元素的值就是该颜色出现总次数-1.每个颜色第二第三次出现的原创 2011-12-06 21:34:12 · 106 阅读 · 0 评论 -
杭电1004题
在网上看到一个写地很好的版本,实现思路是这样的:用两个数组,一个保存颜色,另一个保存每个颜色对应的次数;实现过程---来了一个颜色,跟颜色数组里的每一个比较,如果相同则将与颜色数组中该元素的位置对应的次数数组的元素加1,然后再把这个新来的颜色添加到颜色数组里面,这样一来,在颜色数组中每个颜色出现第一次的位置对应的次数数组元素的值就是该颜色出现总次数-1.每个颜色第二第三次出现的位置的次数值则一次递原创 2011-12-06 21:33:21 · 78 阅读 · 0 评论 -
杭电ACM1003题
// 1003.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;int main(){ int T,N,num,startP,endP; cin>>T; for(int k=0;kcin>>N; int转载 2011-12-06 20:27:30 · 445 阅读 · 1 评论 -
杭电ACM1002题
// 1002.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using namespace std;vector add(vector v1,vector v2){reverse(v1.begin(),v1.end());revers原创 2011-12-06 20:26:49 · 751 阅读 · 0 评论 -
字符串转换成整数
// sortToInt.cpp : 定义控制台应用程序的入口点。//author:ZR// 输入一个字符串整数,如1234,输入一个整数1234.// 两种方法解决,一数组,二指针#include "stdafx.h"#include #include using namespace std;int sortToInt(string str){原创 2011-11-12 22:12:53 · 319 阅读 · 0 评论 -
求一个字符串中包含的对称子字符串的最大长度(两种方案,一个时间复杂度n2,一个时间复杂度n3)
//求一个字符串中包含的对称子字符串的最大长度//author:ZR#include "stdafx.h"#include #include using namespace std;string returnString(string str,int i,int j){string returnStr="";if(i>j)return retur原创 2011-11-11 20:50:13 · 696 阅读 · 0 评论 -
用STL库函数求字符串的全排列
求字符串的全排列题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。利用stl中的next_permutation方法可以很快解出来(next_permutation方法产生参数序列的下一个字典序列,返回值为bool) 代码如下:转载 2011-11-20 21:30:39 · 379 阅读 · 0 评论 -
字符串右转的问题
题目:将abcdefg变为defgabc,转换位置自己定方法:先将abc倒序,再将defg倒序,再将总的串倒序,这样就可以了实现一(vector):#include #include using namespace std;int reverse(vector &vec,int start,int end){ int tmp;原创 2012-01-09 09:28:28 · 206 阅读 · 0 评论