LeetCode 第一道题:两数之和 - C语言代码详解与优化
你的代码已经接近正确了,但有一个小错误需要修正。在内层循环中,你设置了 'j' 的初始值为 1,并且条件为 'j > i',这将导致内层循环无法执行。应该将条件改为 'j < 4',使其遍历剩余的元素。以下是修正后的代码:
#include<stdio.h>
int main()
{
int nums[4] = { 2,7,11,15 };
int target = 9;
int* p = &nums[0];
int* tar = ⌖
for (int i = 0; i < 4; i++)
{
for (int j = i + 1; j < 4; j++) // 将 j 的初始值改为 i+1,条件改为 j < 4
{
if (*(p + i) + *(p + j) == *tar)
printf("[%d,%d]", i, j);
}
}
return 0;
}
修正后的代码将正确地输出符合要求的两个数的索引 '[0,1]'。注意,这里的索引 '[0,1]' 表示数组中第一个数和第二个数。
祝你顺利解决 LeetCode 第一题!如有更多问题,欢迎随时提问。
原文地址: https://www.cveoy.top/t/topic/bg6G 著作权归作者所有。请勿转载和采集!