文档章节

Leetcode(一):Two Sum

Ambitor
 Ambitor
发布于 2016/04/19 16:40
字数 695
阅读 93
收藏 0

介绍

越往基础和底层学习,就越发的发现数据结构和算法的魅力,这些曾经在大学时候极为讨厌的两门枯燥乏味的学科,想不到如今也会慢慢的开始喜欢,所以从今天开始试着刷刷Leetcode的题目,虽然上班后的时间并不宽松,但只要像写博文一样,坚持下来,哪怕一天刷一道题,或者几天刷一道题 我相信总有会让人欣慰的收获!

对于Leetcode网上已经有很多出色的解题思想和博文,所以我写博客的更多初衷是为了自己养成学习中不断记录的习惯,也希望在以后忘记的时候可以拿出来翻翻看。

目的

Leetcode是国外的一个网站,提供算法、sql、shell性能的题库测试,基本上在国外的大公司都必须要求的门槛,现在算法题总共有343道题目,为了提高自身水平,我也尝试着学习学习,希望自己越来越厉害,哈哈,有兴趣的大家一起刷。还可以讨论讨论 交换思路。

Two Sum

  • 题目:

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution.

    Example:

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

    Because nums[0] + nums[1] = 2 + 7 = 9,

    return [0, 1].

    UPDATE (2016/2/13): The return format had been changed to zero-based indices. Please read the above updated description carefully.

  • 解题:new Map<Integer,Integer>(),迭代nums数组元素,检查当前Index元素是否在Map中,如果在返回value与当前Index的数组,如果不在使用target减去当前元素,然后把差放到map中(map.put(差,当前Index);

    public class Solution {

     public int[] twoSum(int[] nums, int target) {

        if(nums==null||nums.length==0)return null;
        Map<Integer,Integer> temp=new HashMap<Integer,Integer>();
        int[] result=new int[2];
        for(int i=0;i<nums.length;i++){
            int num=nums[i];
            if(temp.containsKey(num)){
                result[0]=temp.get(num);
                result[1]=i;
                return result;
            }
            int substract= target-num;
            temp.put(substract,i);
        }
        return null;
        }
    }
  • 复杂度:O(n)的时间,O(n)的内存

  • 测试结果:


  • 思维发散:大伙能举一反三的想到其他类似结果吗?

注:版权所有转载请注明出处http://my.oschina.net/ambitor/blog/662408,作者:Ambitor

© 著作权归作者所有

共有 人打赏支持
Ambitor
粉丝 73
博文 30
码字总数 29210
作品 0
高级程序员
私信 提问
leetcode题解(二叉树和递归问题)

这篇博客我们主要来看二叉树和二叉树问题中使用递归来解决问题的思路。这类问题有时思路很简单,这是因为二叉树具有天然的递归结构,所以我们使用递归的解法解决二叉树有关的问题就变得非常明...

吴小琪
06/26
0
0
Leetcode_Problem 16_3 Sum Closest

题目 问题网址: https://leetcode.com/problems/3sum-closest/description/ 问题描述: Given an array S of n integers, find three integers in S such that the sum is closest to a giv......

quiet_girl
03/09
0
0
LeetCode日记2

LeetCode-5 思路: (1)最后用子字符串操作返回string。 return s.substr(startpos, maxlength); (2)回文串的判断: 1)首先找出回文串中间连续的重复的字符。 2)再向两边进行判断 (3...

fxdhdu
2015/10/19
53
0
[LeetCode] Two Sum IV - Input is a BST 两数之和之四 - 输入是二叉搜索树

Given a Binary Search Tree and a target number, return true if there exist two elements in the BST such that their sum is equal to the given target. Example 1: Input: / 3 6/ 2 4......

机器的心脏
2017/12/06
0
0
Leetcode日记8

(2015/2/3) LeetCode 4 Median of Two Sorted Arrays 题目大意:找到两个已排序数组的median。 median:中间位置的值。 算法: 参考:https://leetcode.com/discuss/15790/share-my-o-log...

fxdhdu
2016/02/18
94
0

没有更多内容

加载失败,请刷新页面

加载更多

防止Tweak

什么是tweak? 英文意思为捏, 拧,扭,稍稍调整(机器、系统等)。 依据维基百科的定义,tweak指的是对电子系统进行轻微调整来增强其功能的工具;在ios中tweak特指那些能够增强其它可执行程...

HeroHY
23分钟前
1
0
linux中常用标识---不定期更新

LINUX常用标识符: 1 & && | || &: 表示进程在后台运行 例如 redis-server & 不是所有后台运行都是& 比如es ./bin/elasticsearch -d es后台运行&&: 第一个命令执行成功后 才执行后面的命令...

geek土拨鼠
今天
1
0
Mybatis 中$与#的区别,预防SQL注入

一直没注意Mybatis 中$与#的区别,当然也是更习惯使用#,没想到避免了SQL注入,但是由于要处理项目中安全渗透的问题,不可避免的又遇到了这个问题,特此记录一下。 首先是共同点: 在mybatis...

大雁南飞了
今天
0
0
Spring Clould负载均衡重要组件:Ribbon中重要类的用法

Ribbon是Spring Cloud Netflix全家桶中负责负载均衡的组件,它是一组类库的集合。通过Ribbon,程序员能在不涉及到具体实现细节的基础上“透明”地用到负载均衡,而不必在项目里过多地编写实现...

Ala6
今天
0
0
让 linux 删除能够进入回收站

可以参考这个贴子 https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79543316 从那个git地址 把saferm.sh下载下来 把saferm.sh复制到 /usr/bin 目录下 在用~/目下 的.bashrc 下加一句这...

shzwork
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部