leetcode中第一道题

//感觉代码思路没有错,但是结果不对
//题目:给定一个整型数组,返回两个数的下标,满足两个数相加为一个特定整数。假定只有一个正确答案
//例如:nums = [2, 7, 11, 15], target = 9,因为nums[0] + nums[1] = 2 + 7 = 9,返回[0,1]
//我的代码如下:
#include <stdio.h>
#include <string.h>

int main()
{
int a[2]={0};
int nums[]={2,7,11,15};
int target=9;
int i,j;
int len=strlen(nums);
for(i=0;i<len;i++)
{
for(j=i+1;(j<len&&j!=i);j++)
{
int s=nums[i]+nums[j];
if(target==s)
{

a[0]=i;
a[1]=j;
}
else
{
i++;
j++;
}
}
}
printf("[%d %d]\n",a[0],a[1]);
return 0;
}


全部评论
Strlen用错了,数组长度是sizeof除以相应类型字节数,len= sizeof( nums)/4
点赞 回复 分享
发布于 2018-01-10 17:32
把else 部分去了就好了
点赞 回复 分享
发布于 2018-01-10 04:56
这代码槽点有点多啊。。。可以先巩固下基础再来刷题 for(j=i+1;(j<len&&j!=i);j++)  j都从i+1开始了,还设定一个j!=i的条件作甚
点赞 回复 分享
发布于 2018-01-09 22:44
你这个逻辑就不对,满足不了target==s 走的else是啥?你这个不是一个n2次方过滤吗,把else去掉 然后if满足后break就好了啊,你的i++,j++ for循环都给做了啊
点赞 回复 分享
发布于 2018-01-09 22:32

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务