【唐老狮】Unity、C# 每日一题 NO.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]


常规解题思路

通过两次遍历获取数组中不同位置的变量,让其两两相加进行判断

优点:逻辑简单,清晰易懂

缺点:循环嵌套,时间复杂度较高

内存换性能

  1. 通过一次循环,一边循环一边记录当前值加多少可以等于目标值将加数和当前的索引记录到字典当中
  2. 每次循环都用当前位置数和字典中记录的加数判断是否相同,如果相同表明字典中对应存储的索引位置和当前位置值相加等于目标值

优点:时间复杂度更低,计算更快


唐老狮

获取更多干货内容

经验分享 程序员 微信小程序 职场和发展