leetcode 1 两数之和
发布日期:2021-05-07 15:25:32 浏览次数:20 分类:精选文章

本文共 899 字,大约阅读时间需要 2 分钟。

为了解决这个问题,我们需要找到数组中两个整数,使得它们的和等于给定的目标值,并返回这两个整数的数组下标。我们可以通过暴力法来实现这一点。

方法思路

我们可以使用双重循环来遍历数组中的每一对元素,检查它们的和是否等于目标值。一旦找到这样的对,我们记录它们的下标并返回结果。这种方法的时间复杂度是 O(n²),其中 n 是数组的长度。由于题目中给出的数组长度最大为 103,这种方法在计算上是可行的。

解决代码

int* twoSum(int* nums, int numsSize, int target, int* returnSize) {    int* pretIndex = (int*)malloc(sizeof(int) * 2);    *returnSize = 0;        for (int i = 0; i < numsSize; ++i) {        for (int j = i + 1; j < numsSize; ++j) {            if (nums[i] + nums[j] == target) {                pretIndex[0] = i;                pretIndex[1] = j;                *returnSize = 2;                return pretIndex;            }        }    }        return pretIndex;}

代码解释

  • 分配内存:使用 malloc 分配空间来存储两个整数,用于记录下标。
  • 初始化返回大小:将 returnSize 初始化为 0,表示当前还没有找到符合条件的对。
  • 双重循环遍历数组
    • 外层循环遍历数组的每个元素。
    • 内层循环遍历当前元素之后的每个元素。
  • 检查和是否等于目标值:如果当前元素的和等于目标值,记录下标并设置返回大小为 2。
  • 返回结果:一旦找到符合条件的对,返回指针和下标。
  • 这种方法确保了我们能够找到正确的两个整数及其下标,并且符合题目要求的返回格式。

    上一篇:内存四区
    下一篇:C Refenence

    发表评论

    最新留言

    很好
    [***.229.124.182]2025年03月30日 15时42分38秒