当前位置: 首页 > 科技观察

里口算法经典第一题——两数之和(Java中有两种实现方式)

时间:2023-03-19 14:30:06 科技观察

1.题型难度:简单给定一个整型数组nums和一个整型目标值target,请输入Find求和为目标值target的两个整数,返回它们的数组下标。您可以假设每个输入只有一个答案。但是,数组中的相同元素不能在答案中重复出现。您可以按任何顺序返回答案。2.示例示例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]3.简单分析简单了解一下。Likou直接标记为简单。说实话,对于一个不太懂算法的人来说,真的是看不懂。通过一些资料慢慢了解。这里跟大家分享一下,主要是思路。给我们一个数组,然后是一个目标值。我们不想得到数组下标,必须做一个方便的数组,然后比较找答案。最简单的就是把两者结合起来,然后判断是否满足目标值。当然,这种效率也比较慢。随着阵列变大,效率会直线下降。这样的时间复杂度是O(n^2)。就和冒泡排序一样两个for进行比较!四、暴力便利publicstaticint[]twoSum1(int[]nums,inttarget){for(inti=0;imap=newHashMap<>();for(inti=0;i