当前位置: 首页 > news >正文

淮安做网站建设的网络公司营销型网站建设的价格

淮安做网站建设的网络公司,营销型网站建设的价格,网站积分程序怎么建设,沧州网站建设的集成商题意 给出一个数组和一个目标值,让你在该数组中找出和为目标值的两个数,并且这两个数在数组中的下标不同。 示例 输入: nums [2,7,11,15], target 9 输出: [0,1] 解释: 因为 nums[0] nums[1] 9 ,返回 […

题意

给出一个数组和一个目标值,让你在该数组中找出和为目标值的两个数,并且这两个数在数组中的下标不同。

示例

输入:

nums = [2,7,11,15], target = 9

输出:

[0,1]

解释:

因为 nums[0] + nums[1] == 9 ,返回 [0, 1]

难度 简单

分析

首先,我们能够很自然地想到暴力遍历数组的这个方法,两层遍历,第一层确定第一个数,第二层确定第二个数,从而完成题目的要求。 说句题外话,“暴力”一词在算法领域表示“穷举、极低效率的实现”,可能就是源于这个英文词(Brute-Force,蛮力攻击)。
 

class Solution {public int[] twoSum(int[] nums, int target) {for(int i = 0;i < nums.length;i++) {for(int j = i + 1;j < nums.length;j++) {if(nums[i] + nums[j] == target)return new int[]{i,j};}} throw new IllegalArgumentException("No two sum solution");             }}        

笔试的时候如果遇到不太会的题,就暴力。不过两次遍历的时间复杂度是 O(n^2)O(n2)。 时间复杂度,在算法领域是一个非常重要的概念。 O(n^2)O(n2) 的时间复杂度实在是太不理想了,效率还是太低,在所有 Java 提交中只能击败不到 22% 的用户。 我们能不能优化一下呢? 观察第二个循环,我们是从每个i的后面的数中寻找一个与之相加能够凑成目标值target的。 那我们就反过来想,能不能判断每个i前面的数是否存在与之相加能够凑成目标值target的呢? 可能你会脑袋一热写出下面这样的代码:
 

class Solution{public int[] twoSum(int[] nums,int target){for(int i = 0;i < nums.length;i++)for(int j = 0;j < i;j++)if(nums[i] + nums[j] == target)return new int[]{i,j};throw new IllegalArgumentException("No two sum solution");}}

但是这样的算法时间复杂度和之前相比根本没有变化。 再想一下,每一个i前面的数我们之前访问过,所以我们可以用一个HashMap来记录每一个i前面的数的出现情况以及坐标,这样子就可以快速地查到它前面的数了。
 

                   class Solution{public int[] twoSum(int[] nums,int target){HashMap<Integer,Integer> map = new HashMap<>();for(int i = 0;i < nums.length;i++){int sub = target - nums[i];if(map.containsKey(sub))return new int[]{i,map.get(sub)};map.put(nums[i],i);} throw new IllegalArgumentException("No two sum solution");}}

时间复杂度:O(n)O(n) 空间复杂度:O(Max\{nums[i]\})O(Max{nums[i]}) 这次结果就不一样了,打败了 70.02% 的选手。 总结 对于本题,利用到了极其重要的数据结构——哈希表,Java 已经帮我们实现了,也就是HashMap,可以去详细了解 Java 的 HashMap,只有这样不断横向和纵向去增强我们的技术实力,才能在面试以及开发中得心应手。 力扣链接:力扣

http://www.hkea.cn/news/456706/

相关文章:

  • 企业网站首页的实现专业的网页制作公司
  • 动态网站建设教程宝鸡seo排名
  • 做外贸b2b免费网站优化推广网站排名
  • 丹徒网站建设价格香港服务器
  • 宿迁哪里有做网站开发的信息流广告案例
  • 电脑网页无法访问如何解决北京seo地址
  • 直销网站系统制作价格java培训机构
  • dw软件个人简历网站怎么做百度导航下载2022最新版官网
  • 成都官方网站建设泉州seo外包
  • 矿山建设网站天津网络推广seo
  • 国内优秀的响应式网站深圳专业seo外包
  • 重庆装修价格c盘优化大师
  • 银行网站 设计方案外包优化网站
  • 做网站是学什么专业软件外包企业排名
  • wordpress商城 中文站百度站长平台网址
  • 建手机网站的软件有哪些南宁百度seo价格
  • 做网站私活长沙网络营销公司
  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具
  • 西宁网站建设最好的公司哪家好优秀网站设计案例
  • 沧州做网站费用搜索引擎优化是做什么的
  • 社区网站推广方案线上运营的5个步骤