zoukankan      html  css  js  c++  java
  • 1. 两数之和

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

    你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    1 class Solution { 2 public int[] twoSum(int[] nums, int target) {
     3         
     4         int[] result = new int[2];
     5         for (int i = 0; i < nums.length; i++) {
     6             for (int j = i + 1; j < nums.length; j++) {
     7                 if (nums[i] + nums[j] == target) {
     8                     result[0] = i;
    9 result[1] = j; 10 return result; 11 } 12 } 13 } 14 return result; 15 } 16 }

    官方解答

     1 public int[] twoSum1(int[] nums, int target) {
     2         for (int i = 0; i < nums.length; i++) {
     3             for (int j = i + 1; j < nums.length; j++) {
     4                 if (nums[j] == target - nums[i]) {
     5                     return new int[]{i, j};
     6                 }
     7             }
     8         }
     9 
    10         throw new IllegalArgumentException("no two sum solution");
    11     }

    分析:官方解答的优点。 return new int[]{i,j} 还有throw new IllegalArgumentException("no tow sum solution")

     1 public int[] twoSum(int[] nums, int target) {
     2 
     3         Map<Integer, Integer> map = new HashMap<>();
     4 
     5         for (int i = 0; i < nums.length; i++) {
     6             map.put(nums[i], i)
     7         }
     8 
     9         for (int i = 0; i < nums.length; i++) {
    10             int complement = target - nums[i];
    11             if (map.containsKey(complement) && map.get(complement) != i) {
    12                 return new int[] {i, map.get(complement)}
    13             }
    14 
    15             
    16         }
    17         throw new IllegalArgumentException("no to sum solution");
    18     }

    本人好久没有写java了,要开始练习java语言了。

  • 相关阅读:
    Leetcode 127 **
    Leetcode 145
    Leetcode 144
    Leetcode 137
    Leetcode 136
    重写nyoj2——括号匹配
    堆排序
    Leetcode 150
    【转】个人最常用的Eclipse快捷键
    Ajax编程中,经常要能动态的改变界面元素的样式
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/9508111.html
Copyright © 2011-2022 走看看