🔥博客主页🔥:【 坊钰_CSDN博客 】
欢迎各位点赞👍评论✍收藏⭐
目录
1. 题目
2. 解析
2.1 判断两个数相加是否等于目标值
2.2 相等后,如何返回两个下标
3. 代码
4. 小结
取于力扣-->LeetCode 热题 100 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台
1. 题目
给定一个整数数组
nums
和一个整数目标值target
,请你在该数组中找出 和为目标值target
的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。
你可以按任意顺序返回答案
例:
示例 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. 解析
这道题难度一般,只有两个难点
- 怎么判断两个数相加等于目标值
- 判断相等后,如何返回两个下标
2.1 判断两个数相加是否等于目标值
这种可以用快慢 “标识” 法,也就是用两个标识,起始位置分别指向数组的 0 下标,和 1 下标,并且在后面的标识始终比前面的标识大一位,这样就不会遇到两个标识指向同一位的情况
2.2 相等后,如何返回两个下标
这个问题难倒很多同学,想一想,两个下标是两个数,我们可以把它们存储倒数组中,然后在返回数组就可以了
3. 代码
class Solution {public int[] twoSum(int[] nums, int target) {for(int i = 0; i < nums.length; i++) { //前标识for(int j = i + 1; j < nums.length; j++) { //后标识,始终大于前标识一位if(nums[i] + nums[j] == target) { //判断是否相等return new int[]{i, j}; //创建数组存储并返回}}}return new int[0]; //如果没有,则返回 0}}
4. 小结
以上就是对该题的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持 !