1. 两数之和https://leetcode.cn/problems/two-sum/
给定一个整数数组 nums
和一个整数目标值 target
,请你在该数组中找出 和为目标值 target
的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
解题思路:暴力破解,通过双重for循环i,j对数组nums进行遍历相加,找出符合相加target的值,返回i,j的对应值。
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];
}
}
结果分析:
1、对于返回数组的处理存在问题,没有考虑到i,j 的值是作为数组进行输出的,使用了System.out.printf,产生了输出格式不正确的错误
2、没有考虑到nums和target的边界问题,nums数组要求长度大于等于2,小于等于数组极限。nums中元素和target数值也有相应的边界要求。
3、对于Java基础语法遗忘较多,方法调用、main函数编写存在很大问题。
4、代码复杂度高,时间复杂度为O(n2),导致遍历时间过长。