• 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语言了。

  • 相关阅读:
    wu
    Win10编译cuda版OpenCV
    Windows编译OpenCV可能下载失败的文件
    20220419Servlet和HTTP请求协议
    20220418Tomcat
    比 Navicat 还要好用、功能更强大的工具!
    Java 8的18个常用日期处理
    Oracle 执行存储过程五种方法(带参数& 不带参数)
    帆软设置浏览内容宽度为屏幕宽度
    帆软参数为空查询全部
  • 原文地址:https://www.cnblogs.com/hello-lijj/p/9508111.html
Copyright © 2020-2023  润新知