首页 > 其他分享 >2.22题目练习

2.22题目练习

时间:2023-02-23 00:14:50浏览次数:34  
标签:map 题目 target nums int 复杂度 练习 2.22 array

题目一:

  给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

  你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

  你可以按任意顺序返回答案。

提示:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • 只会存在一个有效答案

 最简单解题方案——暴力解决,时间复杂度为 O(n2) 

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int []array = new int[2];
        for(int i = 0; i < nums.length - 1; i++)
        {
            for(int j = i + 1; j < nums.length; j++)
            {
                if(nums[i] + nums[j] == target)
                {
                    array[0] = i;
                    array[1] = j;
                }
            }
        }
        return array;
    }
}

优化一下,时间复杂度小于O(n2),散列表的查找的时间复杂度是o(1),所以采用Map键值对的双列表结构最好

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int []array = new int[2];
        Map<Integer,Integer> map = new HashMap();
        for(int i = 0; i < nums.length; i++)
        {
            int temp = target - nums[i];
            if(map.containsKey(temp))
            {
                array[0] = map.get(temp);
                array[1] = i;
            }
           map.put(nums[i],i);
        }
        return array;
    }
}

 

标签:map,题目,target,nums,int,复杂度,练习,2.22,array
From: https://www.cnblogs.com/20203923rensaihang/p/17146285.html

相关文章

  • 红帽认证RedHat 练习题
    1.1常用Shell命令​1-1创建名为test的目录,并在其下创建file目录​1-2删除test目录下的file目录,同时将test目录一并删除​1-3将用户目录切换到/home​1-4显示当前工作路径​1......
  • 2.22学习体会
    今天学习了增和删,查还出了一点错误。<%@pageimport="dailysummer.Main"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8......
  • 2.22
    今天我完成了androidstudio的安装,按照B站的操作一部一部的安装完成。打开后发现报错,我重试很多次发现还是循环错误。我又练习了一遍增和浏览的jsp,javaweb的操作。我注册......
  • 每日一练2023.2.22
    abc290A签#include<bits/stdc++.h>#definelllonglong#defineullunsignedlonglong#definepbpush_backusingnamespacestd;inta[110];intmain(){ i......
  • 2023.2.22
    今天安装了Androidstudio并进行了实验性的配置。  并使用了数据线链接了手机,开启了开发者模式。万事俱备,准备开干。......
  • 2.22
    认识到了src后台部分的知识,entity表示实体类database表示数据库连接类 dao表示数据访问数据库连接类database publicclassDatabase{publicstaticConnecti......
  • 2.22
    今天我又重新配置了andirodstudio,解决了一些问题,最后此软件能正常运行,之后我学习了此软件的功能,了解了一个项目中每个文件的作用,比如java文件应该在哪里创建和编写,最后我......
  • 学习记录(2.22)
    今天总共学习了h,其中有1.5h是在课上学习了网络的相关知识,为考研的专业课打下了一点点基础。之后用了1h的时间对蓝桥杯的题目进行了一些练习,并讲练习内容上传至github......
  • 2023.2.22AcWing蓝桥杯集训·每日一题
    知识点为双指针。AcWing1238.日志统计(蓝桥杯辅导课)题目描述小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有\(N\)行。其中每一行的格式是:tsid......
  • 2.22学习总结
    终于实现了Javaweb对数据库的增,查功能!前期失败原因总结如下1.tomcat服务器使用版本为10.0,代码中总出现许多无法解决且不报错的问题导致无法实现正常供能,更换9.0之后问题得......