int ina(int x,int* nums,int m)
{
for(int i=0;i<m;i++)
{
if(x==nums[i])
return 1;
}
return 0;
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
int *res=malloc(sizeof(int)*2);
int i,j,k=0,m=0;
for(i=0;i<numsSize;i++)
{
if(nums[i]>target) break;
for(j=i+1;j<numsSize-1;i++)
{
if(nums[j]>target) break;
if(nums[i]+nums[j]==target)
{
if(!ina(i,res,m)&&!ina(j,res,m))
{
res[m]=i;
m++;
res[m]=j;
m++;
}
else
break;
}
}
}
*returnSize=m;
return res;
}
uj5u.com熱心網友回復:
題目編號可以說下. 只看代碼不懂意圖.uj5u.com熱心網友回復:
不看意圖的話,肯定是無限遞回了. base沒有考慮清楚導致的.uj5u.com熱心網友回復:
1. 兩數之和uj5u.com熱心網友回復:
這個錯誤一般是對記憶體越界比如你malloc了4位元組的空間 卻給賦值超過4位元組的東西 就會報這個錯
你現在malloc了8個位元組 你下面res[m]=j;
m是否超過了2,是的話 就報這個錯
uj5u.com熱心網友回復:
同問,在做3sums時出現同樣的問題uj5u.com熱心網友回復:
int *res=malloc(sizeof(int)*2 ); //2個大小夠么?if(!ina(i,res,m)&&!ina(j,res,m)) //這之前res 緩沖區都沒有賦值/初始化 是否呼叫的引數有誤?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/19188.html
標籤:C語言
上一篇:c語言如何實作視窗滾動?
