Leetcode 第一题 《两数之和》
原题目
定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
Leetcode给出了三种解法
- 暴力法 复杂度O(n^2)
- 两遍Hash表法,创建Hash表一次O(n),遍历查找O(n)
- 一遍Hash
一遍Hash算法说明
- 第一个元素添加到hash表,key是num,value是index。
- 计算target - 第二个元素,
- 如果在Hash表中,遍历结束。命中index(1)和当前元素index(2),返回[1,2]
- 如果Hash查找没有命中,将2添加到Hash表
- 遍历nums数组。
Python 实现
class Solution: def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ dict = {} dict[nums[0]] = 0 for i in xrange(1,len(nums)): x = nums[i] if target-x in dict: return (dict[target-x], i) dict[nums[i]] = i
评分,战胜99.96%的python提交记录
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
自定义(带属性)标签学习笔记
前言: 前面我学了核心的标签但是如果我想要实现的内容核心标签 和jstl标签库不能解决怎么办?有人说可以用jsp脚本,但是jsp主要是展示数据用的,不应该大量出现java代码才对。这个时候自定义标签就出现了。(也有人说jsp耦合度太高了,这些姑且不考虑)自定义标签目的: 替代jsp脚本,用于在jsp页面中执行java代码 第一步:编写一个普通的java类,继承SimpleTagSupport类,叫标签处理器类 注意:SimpleTagSupport需要导包jsp-api.jar,这个可以在Tomcat的lib中找到 重点:自定义标签的内容要覆盖doTag方法 自定义标签的执行过程 问题: http://localhost:8080/day14/01.hellotag.jsp 如何访问到自定义标签? 前提: tomcat服务器启动时,加载到每个web应用,加载每个web应用的WEB-INF目录下的所有文件!!!例如。web.xml, tld文件!!! 1)访问01.hellotag.jsp资源 2)tomcat服务器把jsp文件翻译成java源文件->编译class->构造类...
- 下一篇
【译】JavaScript:核心 - 第二版 - 网络埋伏纪事
这是JavaScript:核心概述讲稿的第二版,致力于ECMAScript编程语言及其运行时系统的核心组件。 目标人群:有经验的程序员、专家。 本文的第一版涵盖了JS语言的通用方面,主要讲解了旧式ES3规范中的概念,并参考了在ES5和ES6(即ES2015)中的一些变化。 从ES2015开始,规范修改了一些核心组件的描述和结构,引入了新的模型等等。所以在这个版本中,我们会关注较新的概念以及更新了的术语,但是依然保留在规范各个版本中保持一致的最基本的JS结构。 本文涵盖了ES2017+运行时系统。 注: ECMAScript规范的最新版本可以在TC-39网站上找到。 我们从讨论ECMAScript最基础的概念对象开始。 对象 ECMAScript是一门面向对象的编程语言,它基于原型,以对象作为其核心概念。 定义. 1: 对象:对象是属性的集合,并且有一个原型对象。原型要么是一个对象,要么是null值。 我们来看一个简单的对象示例。一个对象的原型是被内部的[[Prototype]]属性引用,通过__proto__属性暴露给用户级代码。 对于如下代码: let point = { x: 10...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果