概述
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
思路:先在数组中找出比target小的数字记为temp然后从temp遍历数组,只要找到temp + nums[j] == target,就返回找到的这两个数的在数组中的下标。
#include<stdio.h>
#include<Windows.h>
int main()
{
int nums[] = { 2, 9, 11, 15 };
int target = 13;
int n = sizeof(nums) / sizeof(nums[0]);
int i = 0;
for (i = 0; i<n; i++)
{
if (nums[i] < target)
{
int temp = nums[i];
for (int j = i+1; j < n; j++)
{
if (temp + nums[j] == 13)
printf("i=%d j=%dn", i, j);
}
}
}
system("pause");
return 0;
}
复杂度分析:
-
时间复杂度:O(n2)O(n^2)O(n2), 对于每个元素,我们试图通过遍历数组的其余部分来寻找它所对应的目标元素,这将耗费 O(n)O(n)O(n) 的时间。因此时间复杂度为 O(n2)O(n^2)O(n2)。
-
空间复杂度:O(1)O(1)O(1)。
最后
以上就是机灵夏天为你收集整理的LeetCode:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的全部内容,希望文章能够帮你解决LeetCode:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复