• 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;
        }
    
    }
  • 相关阅读:
    HDU 1022 Train Problem I
    HDU 1702 ACboy needs your help again!
    HDU 1294 Rooted Trees Problem
    HDU 1027 Ignatius and the Princess II
    HDU 3398 String
    HDU 1709 The Balance
    HDU 2152 Fruit
    HDU 1398 Square Coins
    HDU 3571 N-dimensional Sphere
    HDU 2451 Simple Addition Expression
  • 原文地址:https://www.cnblogs.com/airycode/p/6850671.html
Copyright © 2020-2023  润新知