标签:t2016
/*
ABC XYZ abc xyz
i j
i指向A if a[i]>=a i++
j指向a if a[j]<=Z j++
ABCabc
i j
aBCAbc
i j
abCABc
i j
abcABC
i
*/
#include <iostream>
#include <string.h>
using namespace std;
void fun(char*a)
{
int len=strlen(a);
int i=0,j=0;
char tmp=0;
while(j<len-1)
{
cout<<a<<endl;
while(a[i]>=‘a‘&&i<len) i++; j=i;
while(a[j]<=‘Z‘&&j<len-1) j++;
tmp=a[i];a[i]=a[j];a[j]=tmp;
}
cout<<a<<endl;
}
void test0()
{
char s[]="ABCabc";
fun(s);
}
void test1()
{
char s[]="AAAAAaaaaaaaaaaaaAAAAAAAAAAAAAAAAaaaaaaaa";
fun(s);
}
int main()
{
test1();
return 0;
}
/*
难点在于求间距最小的
只要有元素相同,距离为0,是最小的,而这些数据是离散的。
*/
#include <iostream>
using namespace std;
void fun(int a[],int len)
{
//找到最大的数有多少个, 找最小的数有多少个,mmin找到间距最小的;
int max=a[0],min=a[0],maxcount=0,mincount=0,mmin=a[0],mmincount=0;
int b[len];
for(int i=0;i<len;i++)
{
if(a[i]>max)max=a[i];
if(a[i]<min)min=a[i];
}
for(int i=0;i<len;i++)
{
if(a[i]==max)maxcount++;
if(a[i]==min)mincount++;
}
cout<<maxcount<<"wwwwwwwwwwwwwwwwwwwwwwwwwww"<<endl;
cout<<"maxdis : "<<maxcount*mincount<<endl;
}
int test0()
{
int a[]={1,2,3,4,5,6};// max : 1 min :5
int len=sizeof(a)/sizeof(a[0]);
fun(a,len);
}
void test1()
{
int a[]={1,1,1,2,3,4,111,111,111};//max:9 min :6
//int a[]={1,1,1,2,2,3,4,111,111,111};//max:9 min :6+1
//int a[]={1,2,3,4,5,6};//max:1 min :5
//int a[]={6,6,6,6,6,6};//max:15 min :15
int len=sizeof(a)/sizeof(a[0]);
fun(a,len);
}
int main()
{ //排序了才好处理,这里测试 均直接传排好序的数组
test1(); return 0;
}
学习链接http://blog.csdn.net/minsophia/article/details/51836367标签:t2016
原文地址:http://wzsts.blog.51cto.com/10251779/1834936