题目要求:
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
思路:
求和一定时,求两个数,就需要两个指针,两个指针一个大一个小不想等,首先让小的的指针不动,让大的指针向后移动,知道出现大于或者等于需要的和。等于时输出结果,小的指针向后移动一位;大于时小的指针向后移动出现大于等于需要的和。以此类推,得出结果。相当于一个逆向的“中值定理”。
代码:
public class one { public static void main(String[] args) { int[] nums = {1,2,3,4,5,6,7,8,9}; int target = 10; for (int a=0;a<nums.length;a++) { for(int b=a+1;b<nums.length;b++) if (nums[a]+nums[b] == target) System.out.println("There have"+nums[a]+"and"+nums[b]+"="+target); } } }