zoukankan      html  css  js  c++  java
  • 001-Two Sum

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].
    

    Subscribe to see which companies asked this question.

    Show Tags
    Show Similar Problems
    package TWO_SUM_001;
    
    import java.util.Arrays;
    
    
    public class Main {
    
        public static void main(String[] args) {
    
            int nums[] = {2,7,11,15};
            int num[] = twoSum(nums,9);
            print(num);
            
        }
    
        private static void print(int[] num) {
            if (num != null && num.length>0) {
                for (int n:num) {
                    System.out.print(n+" ");
                }
            }
            
        }
    
        public static int[] twoSum(int[] nums, int target) {
            int[] array = new int[2];
            //1:首先对数组中数字排序
            Arrays.sort(nums);
            //2:
            int start = 0;//下标
            int end = nums.length-1;//下标
            
            //从两边向中间靠拢
            while (start < end) {
                //找到输入的结果直接返回
                if (nums[start]+nums[end] == target) {
                    
                    if (nums[start] > nums[end]) {
                        array[0] = end+1;
                        array[1] = start+1;
                    } else {
                        array[0] = start+1;
                        array[1] = end+1;
                    }
                    break;
                } else if (nums[start]+nums[end] > target) {//如果大于右边的值end--
                    end--;
                } else {
                    start++;
                }
            }
            return array;
        }
    
    }
  • 相关阅读:
    程序猿也爱学英语(上),有图有真相
    时间&物质&效率
    20130722
    Java数组操作工具
    小学课文《挑山工》
    字符编解码的故事(ASCII,ANSI,Unicode,Utf-8区别)
    String[]转化暴露“思维误区”
    2017.9.17 小测试小整理
    Noip2016 提高组 Day1
    luogu P2585 [ZJOI2006]三色二叉树
  • 原文地址:https://www.cnblogs.com/airycode/p/6850671.html
Copyright © 2011-2022 走看看