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);
}
```
版权声明:本文标题:leetcode题库c语言 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714474033a681726.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论