企业建网站需要什么,公司官网是通过什么编辑,wordpress变更域名插件,程序员做情侣网站 礼物前言
有人夜里挑灯看花#xff0c;有人相爱#xff0c;有人夜里开车看海#xff0c;有人leetcode第一题都做不出来。 希望下面的题解可以帮助你们开始 你们的 leetcode 刷题 的 天降之路
题目 给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中…前言
有人夜里挑灯看花有人相爱有人夜里开车看海有人leetcode第一题都做不出来。 希望下面的题解可以帮助你们开始 你们的 leetcode 刷题 的 天降之路
题目 给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 难度简单 题目链接1. 两数之和 示例 1
输入nums [2,7,11,15], target 9
输出[0,1]
解释因为 nums[0] nums[1] 9 返回 [0, 1] 。示例 2
输入nums [3,2,4], target 6
输出[1,2]示例 3
输入nums [3,3], target 6
输出[0,1]
提示
2 nums.length 104-109 nums[i] 109-109 target 109只会存在一个有效答案 题目解析
当你看到这个题的时候 请答题手 不要犹豫直接进行暴力解题直接来两层for循环
第一层循环 就是从数组的下标 0 开始 (即第一个元素开始 与 第二层的for的循环的第二个元素进行相加 来判断 是否等于目标值 ) 找到 两个数的下标 相加后等于目标值 注意返回数组的大小 还有就是返回数组
代码展示
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {int* arr (int*)malloc(sizeof(int) * 2);int i 0;int j 0;for (i 0; i numsSize; i){for (j i 1; j numsSize; j){if (nums[i] nums[j] target){arr[0] i;arr[1] j;}}}*returnSize 2;return arr;
} 代码超详解析
第一代码就是 使用 动态内存malloc 动态分配空间。
int* arr (int*)malloc(sizeof(int) * 2);
随后就是 两层for循环 进行暴力解题
第一层for循环我们就是 按照数组下标进行来 [0, numsSize-1] 其实就是遍历 numsSize个元素, i的取值范围就是 [ 0 , numsSize-1 ] 这样就可以进行遍历整个数组的元素
第二层的循环就是 从 i 1 开始范围是[ i1 , numsSize-1 ].
这样自就可以让 第一个元素 开始 依次和后面的元素相加进行判断
比如 从 第一个元素开始 第一个元素加上第二个元素 判断是否等于目标值target如果不等于就让 第一个加上第三个元素 来进行判断 ……直到找到两个合适的。 for (i 0; i numsSize; i){for (j i 1; j numsSize; j){if (nums[i] nums[j] target){arr[0] i;arr[1] j;}}}
注意这里要用 上述创建的数组来接收这样就方便返回数组。
这里的 * returnSize 2; 一定要记得写上表示返回数组的大小。
最后两行的代码一定不要忘记 *returnSize 2;return arr;