leetcode的每天一题更新(two sum)

这个题目的问题是传入两个参数,第一个参数是一个数组,第二个是一个数字,如果数组中有两个数字相加等于第二个参数则将这两个数字组成一个新的数组返回。

不得不说这个是简单里面最简单的,就是说老师说的冒泡排序,用两重循环暴力解决,答案也成功的被accepted,但是看到接受的标志有红色的样式就知道肯定说明了不是好的算法,过几天看完这三本书开始看算法书,基础不好只能看答案来看看自己哪里想错了,但是其实并没有说哪里错误,只是我太不熟悉java的基础库,在java的hashmap中有一个containkey方法可以使得不遍历也能知道是否包含其中一个数字。附上代码:

public int[] twoSum(int[] nums, int target) {    Mapmap = new HashMap<>();

for (int i = 0; i < nums.length; i++) {

int complement = target - nums[i];

if (map.containsKey(complement)) {

return new int[] { map.get(complement), i };

}

map.put(nums[i], i);

}

throw new IllegalArgumentException("No two sum solution");

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容