您的位置:首页 > 其它

Two sum no map by C

2015-10-22 16:07 471 查看
#include <stdio.h>
#include <stdlib.h>
int comp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int* twoSum(int* nums, int numsSize, int target)
{
int k;
int cpnums[numsSize];
for(k=0; k<numsSize; k++)
{
cpnums[k]=nums[k];
}
printf("%d\n",*cpnums);
qsort(nums,numsSize,sizeof(nums[0]),comp);
int left=0;
int right=numsSize-1;
int i;
while(left<right)//!
{
if(nums[left]+nums[right]==target)
{
int rs[2]= {0,0};
int pos=0;
int j;
printf("left:%d\n",nums[left]);
printf("right:%d\n",nums[right]);
printf("target:%d\n",target);
for(j=0; j<numsSize; j++)
{
if((cpnums[j]==nums[left])||(cpnums[j]==nums[right]))
{

rs[pos++]=j;

}
}
printf("rs:%d,%d\n",rs[0],rs[1]);
}
if(nums[left]+nums[right]>target)
{
right--;
}
else
{
left++;
}
}
}
int main()
{
int num[11]= {1,3,4,6,8,3,2,7,332,5,34};

twoSum(num,11,15);
//printf("%d\n",size(num));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: