[OJ]: Two Sum

来源:互联网 发布:阿里云邮箱怎么样啊 编辑:程序博客网 时间:2024/06/04 17:40

Two Sum


需求说明

Given an array of integers, find two numbers such that they add up to a specific target number.

The function twoSum should return indices of the two numbers such that they add up to the target,where index1 must be less than index2.Please note that your returned answers (both index1 and index2) are not zero-based.

You may assume that each input would have exactly one solution.

Input  : numbers={2, 7, 11, 15}, target=9
Output: index1=1, index2=2


实现方法


Python

#!/bin/env pythoninput_number  = raw_input('Please input a array: ')input_target  = raw_input('Please input a target:')numbers = input_number.split()target  = int(input_target)for i in range(len(numbers)):    numbers[i] = int(numbers[i])    for j in range(len(numbers)-1):        numbers[j+1] = int(numbers[j+1])        if numbers[i] + numbers[j+1] == target and numbers[i] < numbers[j+1]:                print 'index1=' , i+1                print 'index2=' , j+1+1

Perl

#!/bin/env perluse strict;print "Please input a array: ";my @numbers = <>;print "Please input a target:";my $target  = <>;for my $i(0 .. scalar @numbers -1){    for my $j(0 .. scalar @numbers -1 -1)    {        if ($numbers[$i] + $numbers[$j+1] == $target && $numbers[$i] < $numbers[$j+1])        {            print "index1= ", $i+1   ."\n";            print "index2= ", $j+1+1 ."\n";        }    }}


Java

import java.util.Scanner;import java.lang.Integer;public class twoSum {public static void main(String[] args) {Scanner console = new Scanner(System.in);System.out.println("Please input a array: ");String input_numbers = console.nextLine();String string_numbers[] = input_numbers.split(" ");int numbers[] = new int[string_numbers.length];for(int i=0; i<string_numbers.length; i++){numbers[i] = Integer.parseInt(string_numbers[i]);}System.out.println("Please input a target:");int target = console.nextInt();for(int i=0 ;i<numbers.length ;i++){for(int j=0 ;j<numbers.length -1 ;j++){if(numbers[i] + numbers[j+1] == target && numbers[i] < numbers[j+1]){System.out.println("index= "+(i+1));System.out.println("index= "+(j+1+1));}}}}}


核心思想

确定数组其中一个值,和索引大于这个值元素进行迭代.

与target相等并且索引1小于索引2即可.


--------------------------------------------------------------------------------------
版权所有,转载时必须以链接方式注明源地址,否则追究法律责任!

QQ    :   413844436
Email  :   softomg@163.com
Blog   :   http://blog.csdn.net/softomg

0 0
原创粉丝点击