admin 管理员组

文章数量: 1086019


2024年4月30日发(作者:三个for嵌套顺序)

leetcode题库c语言

LeetCode是一个在线编程平台,提供了一系列算法和数据结构的题目,用

于测试和提升编程技能。以下是一些LeetCode题目的C语言实现:

1. 两数之和

题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组

中找出和为目标值的那两个整数,并返回他们的数组下标。

C语言实现:

```c

include <>

include <>

int twoSum(int nums, int numsSize, int target, int returnSize) {

int result = (int)malloc(sizeof(int) 2);

int i, j;

for (i = 0; i < numsSize; i++) {

for (j = 0; j < numsSize; j++) {

if (i != j && nums[i] + nums[j] == target) {

result[0] = i + 1;

result[1] = j + 1;

returnSize = 2;

return result;

}

}

}

returnSize = 0;

return NULL;

}

```

2. 三数之和

题目描述:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在

三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三

元组。

C语言实现:

```c

include <>

include <>

include <>

void threeSum(int nums, int numsSize, int result, int returnSize) {

int i, j, k;

returnSize = 0;

bool used = (bool)calloc(numsSize, sizeof(bool));

for (i = 0; i < numsSize - 2; i++) {

if (used[i]) continue;

for (j = i + 1; j < numsSize - 1; j++) {

if (used[j]) continue;

for (k = j + 1; k < numsSize; k++) {

if (used[k]) continue;

if (nums[i] + nums[j] + nums[k] == 0) {

result[returnSize] = (int)malloc(sizeof(int) 3);

result[returnSize][0] = i + 1;

result[returnSize][1] = j + 1;

result[returnSize][2] = k + 1;

(returnSize)++;

} else if (nums[i] + nums[j] + nums[k] < 0) {

used[k] = true;

} else {

break; // break inner loop to save time when the sum is

large.

}

}

}

}

free(used);

}

```


本文标签: 题目 数组 给定 整数 编程