2019年4月28日
目录
题目:两数之和

class Solution {
public int[] twoSum(int[] nums, int target) {
}
}
解决
1)第一种方法:循环嵌套
package leetCode;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
public class twoSum {
public static int[] twoSum(int[] nums, int target){
for (int index = 0; index <= (nums.length -2) ; index++){
int firstNum = nums[index];
for (int index2 = index + 1;index2 <= nums.length -1; index2++){
int secondNum = nums[index2];
if (firstNum + secondNum == target){
ArrayList<Integer> result = new ArrayList<>();
result.add(index);
result.add(index2);
int[] d = new int[result.size()];
for(int i = 0;i<result.size();i++) {
d[i] = result.get(i);
}
return d;
}
}
}
return null;
}
public static void main(String[] args){
int test[] = {3,2,4};
int target = 6;
int[] result = twoSum(test, target);
System.out.println(JSONObject.toJSON(result));
}
}
性能消耗:

分析:
1.局部变量使用:firstNum、secondNum、result、d;无疑使用太多了;
2)第二种方法:(性能完善)
class Solution {
public int[] twoSum(int[] nums, int target) {
for (int index = 0; index <= (nums.length -2) ; index++){
for (int index2 = index + 1;index2 <= nums.length -1; index2++){
if (nums[index] + nums[index2] == target){
int d[] = new int[2];
d[0]=index;
d[1]=index2;
return d;
}
}
}
return null;
}
}
性能消耗:

3)其他高级优化:(算法优化)
待补充。
本文深入探讨了经典的两数之和算法问题,提供了三种解决方案:循环嵌套、性能优化及高级算法优化。通过对比不同方法的性能消耗,帮助读者理解算法效率的重要性。
231

被折叠的 条评论
为什么被折叠?



