美文网首页
Two Sum Easy :给出一个数组,找出其中两个和为目标值

Two Sum Easy :给出一个数组,找出其中两个和为目标值

作者: woshi开心 | 来源:发表于2018-10-20 16:32 被阅读0次

第一种解题思路:目标值为d,循环遍历数组,访问数组中的每个元素,值设为a,查看d-a是否存在于数组中,如果存在则输出。

具体实现:

public static void main(String[] args) {

int[] a = {1, 2, 3, 4, 5, 6, 7};

    int dest =5;

    findIndex(a, 5);

}

public static void findIndex(int src[], int dest) {

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

int temp = dest - src[i];

        if (temp ==0) {System.out.println("i="+i);}

else {

for (int j = i +1; j < src.length; j++) {

      if (temp == src[j]) { System.out.println("i="+i +"  j=" + j);  }

}}}}

第二种解决思路:如果数组是一个排序数组,头尾两个指针,如果头尾两个相加小于目标值,则头指针向后移一位;如果头尾两个相加大于目标值,则尾指针向前移一位,直到头尾指针相等。

具体实现:

public static void main(String[] args) {

int a[]={1,2,3,4,5,6,7};

    findIndex(a,5);

}

public static void findIndex(int nums2[], int dest) {

HashMap hash=new HashMap();

    int first=0,second=nums2.length-1;

while(first<second){

if (nums2[first]==dest) {

hash.put(nums2[first],nums2[first]);

            System.out.println("first="+first+" first"+first);

            first++;

        }

if (nums2[second]==dest) {

hash.put(nums2[first],nums2[first]);

            System.out.println("first="+second+" first"+second);

            second--;

        }

if((nums2[first]+nums2[second])

first++;

        }else if((nums2[first]+nums2[second])>dest){

second--;

        }else {

System.out.println("first="+first+" second"+second);

            hash.put(nums2[first],nums2[second]);

            first++;

            second--;

        }

}

}

相关文章

  • 1.两数之和(Two Sum)

    1. 两数之和(Two Sum) 题目难度: 简单 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 ...

  • Two Sum Easy :给出一个数组,找出其中两个和为目标值

    第一种解题思路:目标值为d,循环遍历数组,访问数组中的每个元素,值设为a,查看d-a是否存在于数组中,如果存在则输...

  • 1-Two Sum

    1 经典two_Sum问题 问题:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的...

  • LeetCode(PHP)之两数之和

    题目:两数之和(Two Sum) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目...

  • 算法「两数之和」

    题目:给出数组nums和目标值target,找出和为目标值的两个数在数组中 想法:定义数组和目标值,遍历数组x使得...

  • [leetcode] 1. 两数之和

    难度:easy. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 ...

  • leetcode第一题: 两数之和

    Two Sum(两数之和) 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和...

  • 每天一题LeetCode【第2天】

    T1. Two Sum 【Easy】 题目 给定一个数组和一个目标数,从数组中找到两个数,使得这两个数之和等于这个...

  • 2sum 3sum

    两数之和(2sum) 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标...

  • 1. 两数之和Two Sum

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 Given an array of integers...

网友评论

      本文标题:Two Sum Easy :给出一个数组,找出其中两个和为目标值

      本文链接:https://www.haomeiwen.com/subject/cusmzftx.html