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

那些使用vue做的网站医院网站建设平台

那些使用vue做的网站,医院网站建设平台,个人网站可以直接做微信登陆吗,交换友情链接的注意事项题意 给出一个数组和一个目标值,让你在该数组中找出和为目标值的两个数,并且这两个数在数组中的下标不同。 示例 输入: 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.yayakq.cn/news/94712/

相关文章:

  • 交互式网站课题组网站建设
  • 个人怎么做淘宝客网站吗输入公司名字找不到公司网站
  • 做问卷调查的是哪个网站好天津自助建站
  • 网站建设的安全性问题网站开发工程师swot分析
  • 胶州城阳网站建设临沂企业网站建站模板
  • 网站建设国标行业分类阿里巴巴的网站应该怎么做
  • 站长之家工具高清wordpress如何登录界面
  • 白菜网站建设自己做的网站 怎么在网上销售
  • 西昌城乡规划与建设局网站公司网站集群系统架构及建设思路
  • 怎么停止网站wordpress 主题分享
  • 公司做网站的流程作图的步骤网店美工设计论文
  • .net制作网站开发教程国家企业信用信息公示系统入口
  • 图片素材网站怎么做wordpress nginx 固定链接
  • 江西建设局网站炫酷wordpress主题
  • 网站招标书怎么做c 网站建设教程视频教程
  • 网站建设询价报告成都电子商务网站开发
  • 做网站程序员中国建设银行的网站用户名是什么意思
  • 网站建设专业品牌西安百度推广竞价托管
  • 怎样找家做网站的公司咨询公司面试
  • wordpress 网站加速公司做网站需要准备什么东西
  • 怎么给网站的照片做超级链接美橙极速建站系统
  • iis7.5添加php网站星巴克网络营销案例分析
  • 电商的网站怎么做的好详细网站设计需求表
  • 推广优化网站排名国家反诈中心app下载安装注册
  • 网站底部优化文字如何部署thinkphp网站
  • phpstudy怎样做多个网站网站设计培训成都哪家好
  • 高端网站开发设计投资网站排行
  • 科技服务公司网站模版营销型网站套餐
  • 大型网站建设哪家好清溪网站建设公司
  • 网站开发 阿里互联网推广员是做什么的