Java学习——用Java语言实现力扣中两数之和题目

力扣中两数之和的实现

今天打开力扣官网看了一下它里面的题库,感觉真的是对于一个提升自己编程思维的人去练习里面的题目是非常有必要的。打开随便的看了一下,打开了一个简单类型题目,一下吸引了我的注意力无法自拔,故午饭时间思考了一下将它实现了一下感觉真是挺有意思的,代码实现了功能之后又改了几遍一遍遍的优化,我觉得我现在的思维已经没有能更好的优化方式了只能就是这样提交了。
好了直接上题:

题目描述:

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

public class SumTest {
    public static void main(String[] args) {
        //记录开始执行时间
        long start=System.currentTimeMillis();
        //定义传到函数中的数组
        int[] nums=new int[]{2,7,11,15};
        //定义target值
        int target=9;
        System.out.println(start);
        //用数组接受函数执行结果
        int[]  twosum=twoSum(nums,target);
        //输出接受的数组
        for(int i=0;i<twosum.length;i++){
            System.out.println("返回的数组数为:"+twosum[i]);
        }
        //记录程序执行结束时间
        long end=System.currentTimeMillis();
        System.out.println(end);
        //输出在编辑器上运行的时间
        System.out.println("所用时间为:"+(end-start));
    }
   static int[] twoSum(int[] nums, int target) {
            int[]  array=new int[2];
            int n=0;//用于返回数组的下标表示
       Loop:for(int i=0;i<nums.length-1;i++){
           for(int j=i+1;j<nums.length;j++){
               if (nums[i]+nums[j]==target){//num[0]+num[1]=target  满足条件时执行下列语句
                   array[n]=i;//将i放入array数组中
                   n++;//因为已经有数存如array数组中了所以它的下标加1
                   array[n]=j;//将j放入array数组中
                   break Loop;//代码优化的重要一步,当找到满足条件的值时直接退出两层循环体
               }
           }
       }
            return array;
    }
}

输出结果为:

1579005889044
返回的数组数为:0
返回的数组数为:1
1579005889044
所用时间为:0

在力扣中的提交之后显示运行时间和内存消耗如下图
Java学习——用Java语言实现力扣中两数之和题目_第1张图片

你可能感兴趣的:(实现算法,java,leetcode,算法)