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

o2o模式免费ppt模板郴州seo网络优化

o2o模式免费ppt模板,郴州seo网络优化,南宁希噢网站开发工作室,商务网站建设的必备功能题目描述 解题思路 先说一种很容易想到的暴力解法 暴力解法的思路很简单,就是遍历数组,对于每一个元素,都去遍历数组中剩下的元素,判断是否有两个元素的和等于目标值,如果有,就返回这两个元素的下标。 c…

题目描述

在这里插入图片描述

解题思路

先说一种很容易想到的暴力解法

暴力解法的思路很简单,就是遍历数组,对于每一个元素,都去遍历数组中剩下的元素,判断是否有两个元素的和等于目标值,如果有,就返回这两个元素的下标。

class Solution(object):def twoSum(self, nums, target):for i in range(len(nums)):rest = nums[i+1:]for j in range(len(rest)):if nums[i] + rest[j] == target:return [i, i+j+1]

尝试提交,通过,时间复杂度为O(n^2)

在这里插入图片描述

显然上面的方法不够优雅,再说一种优雅的解法

暴力解法是把每一个数都遍历,然后返回下标,但是这个遍历的过程显然是太过于耗时了,那么我们能不能使用一个数据结构把已经遍历过的数据存储起来,然后往后遍历的时候,求和的时候直接去除先前数据的下标呢?

有的,有的兄弟!我们可以使用字典来存储,当然,你也可以叫他哈希表(HashMap),其实在Python中,这就是字典,为什么叫他哈希表呢,这是因为这个存储思想就是基于操作系统中哈希存储的。

那么我们可以这样来操作:我们遍历所有的数据,以数据的值为键,以它的下标为值,存储到哈希表中,然后每次都判断目标的值和当前所遍历的值的差是否在哈希表中,如果在,直接返回当前数的下标和哈希表中数的下标,否则继续。

开始手搓!

class Solution(object):def twoSum(self, nums, target):num_dict = {}for i in range(len(nums)):if target - nums[i] in num_dict.keys():return [i, num_dict[target-nums[i]]]else:num_dict[nums[i]] = i

尝试提交,通过,时间复杂度为O(n)
在这里插入图片描述

总结

可以看到,执行时间从2172ms降到了3ms,效率提升了700倍!自然就变得优雅了。

http://www.dtcms.com/wzjs/521864.html

相关文章:

  • 长沙做四维彩超玛丽亚m网站站外推广渠道
  • 燕莎做网站优搜云seo
  • 专业做网站价格什么网站推广比较好
  • 宝鸡网站建设东东推广计划
  • 好的网站特点nba排名赛程
  • wordpress下载主题下载成都百度快照优化排名
  • 网站做等保是什么意思百度快照没有了用什么代替了
  • 怎么欣赏一个网站设计图网站外包公司有哪些
  • 道教佛像网站怎么做成都网站设计
  • 做网站做地区好还是全国的好处网络营销章节测试答案
  • 做最好的网站需要什么大型网站建设
  • 中国新闻社是什么级别单位网络优化工程师有前途吗
  • 西安建设门户网站大作设计网站
  • 电子网站建设怎么做seo怎么发文章 seo发布工具
  • 做月季评分表的工程网站叫什么网页制作在线生成
  • 新疆维吾尔自治区建设厅官方网站深圳网络推广公司哪家好
  • 网站开发哪种语言天津网站seo设计
  • 西安网站建设网站排名优化上海关键词优化的技巧
  • 怎么把网站做的好看百度知道首页官网
  • 怎么建设购物网站百度医生
  • 温州网站建设icp备网站建设开发价格
  • 教育品牌加盟网站建设seo搜索是什么
  • 网站建设的文本事例网络运营师
  • 广州做网络服装的网站建设企业的网络推广
  • 重庆永川网站建设价格有网站模板怎么建站
  • 手机棋牌游戏平台大金seo
  • 做类似美团的网站360竞价推广客服电话
  • 学些网站制作网站推广多少钱
  • 建设部监理工程师报考网站seo体系
  • 做网站准备什么问题怎么在百度上发布信息广告