给定一个整数数组和一个整数目标值,在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。(找到一个就返回)

#第一种方法#

#时间换取空间:两个循环求解#

def search(nums,target):
    for i in nums:
        start = nums.index(i) + 1
        for j in nums[start: ]:
            if i + j == target:
                
                result = [nums.index(i)]
                next_index = nums[start:].index(j) + start
                result.append(next_index)
                return result
if __name__ == '__main__':
    print(search([3,2,4],6))

#第二种方法#

#空间换取时间:引入字典快速求解#

def search(nums,target):
	resut_list = list()
	result_dict = {}
	result_dict[nums[0]] = 0
	for i in nums[1:]:
		key = target - i
		
		if key in result_dict.keys():
			resut_list.append(result_dict[key])
			resut_list.append(nums.index(i))
			
		else:
			result_dict[i] = nums.index(i)
	return resut_list
if __name__ == '__main__':
    print(search([3,2,4],6))

有兴趣的小伙伴也可以思考一下,如何返回数组里满足条件的所有值的组合。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值