2019独角兽企业重金招聘Python工程师标准>>>

写了三个版本的,第一个版本是javascript使用两个循环,最不烧脑的方法,后面是看答案写出来的,不过也是理解以后,自己写的,挺不错的,可以换种思路解决问题。

java

public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();
        for(int i = 0;i < nums.length;i++){
            map.put(nums[i],i);
        }
        for(int i =0;i < nums.length;i++){
            int num2 = target - nums[i];
            if(map.containsKey(num2) && map.get(num2) != i){
                return new int []{i,map.get(num2)};
            }
        }
        throw new IllegalArgumentException("没有找到该数组");
    }

总结:该方法为LeetCode给出的答案,我太笨了,根本想不到使用map来做这道题,看到答案后简直了,哈哈,我太菜了,什么都不会,map.get(num2) != i 是用来防止使用同一个数

C#

public class Solution {
    public int[] TwoSum(int[] nums, int target) {
        var map = new Dictionary<int,int>();
        for(var i = 0;i < nums.Length;i++){

//  步骤1
            if(map.ContainsKey(target - nums[i])){
                return new int [] {i,map[target - nums[i]]};
            }
            //步骤2
            if(!map.ContainsKey(nums[i])){
                map.Add(nums[i],i);
            }
        }
        return null;
    }
}

总结:

1.C#中字典中的key不可以重复,所以需要进行判断,当key不存在是,向字典中添加数据。

2.步骤1与步骤2调换顺序会引起错误,错误愿意是:当数组为[3,3]时,下标为0的添加进字典中,步骤2会为true,return i=0,key=0,题目不允许使用同一个数。

3.网上找的,然后简单修改的,忘记那个博客看到了的,不好意思啊,哈哈哈

javascript

var twoSum = function(nums, target) {
    for(var i = 0;i < nums.length;i++){
       
       for(var j = i + 1;j < nums.length;j++){
       
            if(nums[i] + nums[j] == target){
                
                return  [i,j];
                
            }
       }     
    }
};

总结:这个是我自己写的,哈哈哈,也是最简单的,根本估计算法让我写成这样,也是丢脸了,不过没舍得改,也算是处理了问题的一种方法,时间复杂度n2

转载于:https://my.oschina.net/u/3141521/blog/1634002

刷题中,效率好低,哈哈哈 -----1.Two Sum相关推荐

  1. 如何将刷题的效率提升10倍

    刷题一直找不到好方法,很苦恼? 这里分享一下真正能提高刷题效率的方法 1.刷题误区: 1.看到题就去搜答案 2.等到面试时,再刷 3.上来就刷,刷一道是一道 4.题海战术,让我再刷100道 5.死记硬 ...

  2. Python刷题中常用的知识点和易忘点

    刚开始刷题总是会因为忘记或者不了解一些很小的知识点而导致题做不出来,这篇文章总结了常见的易忘点与君共勉. 文章目录 n&(n - 1) 闰年的判定方法 字符串是不可变的 字符串判断大小写字母 ...

  3. CTF常用知识点整理(个人刷题中整理)

    由于是之前刷题的整理,参照了很多大神的博客,由于过于零碎,没能记录下各位大神的文章出处(以后会提高版权意识的),如有侵权,私聊补加出处或者删文章. 博主是入门半年的萌新,文章不可避免会有很多错误,还请 ...

  4. LeetCode刷题中遇到的一些知识点

    char 数组与Sting 相互转换 String s; char array[]=s.toCharArray(); s=String.vauleOf(array); 或者 new String(ar ...

  5. C#LeetCode刷题之#40-组合总和 II(Combination Sum II)

    目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3666 访问. 给定一个数组 candidates ...

  6. 一个月 200 题,命中 80%,拿下 BAT,我独特的高效刷题法

    来源 | 陈同学在搬砖 我叫陈同学 机械专业  非科班  渣硕 擅长搬砖和划水 我和各位一样 我也是21届的 我也在近经历秋招 然后拿到过BATH的offer (字节跳动 阿里巴巴 腾讯 华为) 还有 ...

  7. 高中信息技术——Photoshop刷题点整理

    前言:以下是针对高中信息技术多媒体模块Photoshop刷题点的整理. 1. 图片存储方式   针对PS的刷题中,以下是常见的图片格式: 1.1 psd   PSD–Photoshop Documen ...

  8. Python刷题之路,怎样做才能让技术突飞猛进

    比你优秀的人比你还努力 这个世界最可悲的就是 , 比你优秀的人比你还努力 偶然的机会,通过Python认识了一位华为的文职工作人员.起初只是问我,Python初学者看什么书能快速入门.而两个月过后,她 ...

  9. 程序员光环大降:求职门槛抬高靠刷题入职却被当小工,38岁遭嫌弃

    程序员的a'w'da'w'da'w'da'w世界也是一座a'w'd围城,站在城外的人想冲进去,围在城里的一部分人想逃出来,而最终绝大部分人不管情不情愿都得出来. 作为a'w'da'w'da'w常规职业 ...

最新文章

  1. 多线程 阻塞队列中的poll与take区别
  2. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2 新增解压缩工具类ZipHelper
  3. 6678EVM调试K1_STK_v1.1例程中GE_test的时候报错:DDR3 leveling has failed, STATUS = 0x40000064的解决办法
  4. 【ESSD技术解读】ESSD Auto PL规格,引领IO性能弹性新方向
  5. 取得Access自增标识字段在插入数据后的id值
  6. LiveVideoStackCon 2019北京 优秀出品人与讲师
  7. SVN服务器更换地址解决方法
  8. 【Python】Python库之游戏开发
  9. hdu 1698 Just a Hook 线段树区间更新
  10. 50个精心收集的惊人的jquery绚丽插件--功能全覆盖
  11. 主键与主键索引的关系
  12. ai人工智能将替代人类_人类可以信任AI吗?
  13. CSS 3D透视效果 星空穿越
  14. 游戏测试-----------------第3章
  15. 推荐一个Firefox的扩展——IE Tab
  16. Angular 字符串替换
  17. 【生活感悟】达克效应--要自信不要自负,越努力越幸运
  18. 标准盒模型与怪异盒模型
  19. vivado+vscode
  20. 计算机发展简史 计算机的发展历史介绍

热门文章

  1. ubuntu18安装pytorch-gpu,一行conda命令安装,不需要单独安装cuda
  2. python decorator ssh_Python库现后门 可窃取用户SSH信息
  3. c++创建文件_JavaNote 文件系统及Java文件基本操作
  4. java代码怎样连接es,Elasticsearch 连接ES的两种方式
  5. 8 使用_【化学技能8】 酸式滴定管的使用
  6. vue动态设置文字布局方式_详解Vue动态添加模板的几种方法
  7. 求约束条件下极值的拉格朗日乘子法
  8. 【杂谈】什么是我心目中深度学习算法工程师的标准
  9. 专访iOS开发框架BeeFramework作者郭虹宇
  10. 外国人居留证办理手续