leetcode01.

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, and you may not use the same element twice.

  • C++解法

vector<int> twoSum(vector<int> &nums,int target)
    {
        vector<int> result;
        map<int,int> maps;
        int count=nums.size();
        for (int i=0;i<count;i++) {
            int complement=target-nums[i];
            if (maps.find(complement)!=maps.end()) {
                result.push_back(maps[complement]);
                result.push_back(i);
            }
            maps[nums[i]]=i;
        }
        return result;

}

  • C解法

int* twoSum(int* nums, int numsSize, int target) {
    int min = nums[0];  
    int i = 0;  
    for (i = 0; i < numsSize; i++) {  
        if (nums[i] < min)  
            min = nums[i];  
    }  
    int max = target - min;  
    int len = max - min + 1;   //确定hash长度  
    int *table = (int*)malloc(len*sizeof(int));  
    int *indice = (int*)malloc(2*sizeof(int));  
    for (i = 0; i < len; i++) {  
        table[i] = -1;         //hash初值  
    }  
    for (i = 0; i < numsSize; i++) {  
        if (nums[i]-min < len) {  
            if (table[target-nums[i]-min] != -1) {        //满足相加为target  
                indice[0] = table[target-nums[i] - min];  
                indice[1] = i;  
                return indice;  
            }  
            table[nums[i]-min] = i;  
        }  
    }  
    free(table);  
    return indice;

}

  • python3解法

def twoSum(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """
        keys = {}
        for i in range(len(nums)):
            if target - nums[i] in keys:
                return [keys[target - nums[i]], i]
            if nums[i] not in keys:
                keys[nums[i]] = i

Two Sum(C、C++、Python)相关推荐

  1. 带你自学Python系列(四):range、min、max、sum函数

    ↑ 点击上方[计算机视觉联盟]关注我们 今天是小编持续更新关于Python的知识总结以及Python实践项目应用的第4天,带你利用零碎时间自学最受欢迎的编程语言之一Python语言.你和小编一起打卡了 ...

  2. Python函数:np.sum()以及axis=0、axis=1用法

    Python基本函数:np.sum() 一.具体用法 常用于矩阵求和计算,以下用法分为三种情况来介绍! 格式:np.sum(a)            np.sum(a, axis=0) ------ ...

  3. 《Python编程从入门到实践》记录之range、min、max、sum函数

    目录 1.range()函数 2.min.max.sum函数 ​​​​​​1.range()函数 range(num1,num2,steps)函数:可以生成一个一系列数字. num1参数:表示起始范围 ...

  4. 完全理解Python迭代对象、迭代器、生成器

    本文源自RQ作者的一篇博文,原文是Iterables vs. Iterators vs. Generators,俺写的这篇文章是按照自己的理解做的参考翻译,算不上是原文的中译版本,推荐阅读原文,谢谢网 ...

  5. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  6. python学习笔记-基础、语句、编码、迭代器

    #python的优缺点 优点:Python简单优雅,尽量写容易看明白的代码,尽量写少的代码. 缺点:第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一 ...

  7. 独家|测量、建议、快速上手!你所使用的Python对象占用了多少内存?(附代码)...

    作者:Gigi Sayfan 翻译:吴振东 校对:吴金笛 本文约3300字,建议阅读10分钟. 本文将介绍多种Python对象分别所占用的内存,并解释所选择的测量方法和函数,为节省内存提供建议. Py ...

  8. Python(迭代、三元表达式、列表生成、生成器、迭代器)

    迭代 什么是迭代1 重复2 下次重复一定是基于上一次的结果而来 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在 ...

  9. python控制结构是_Python之控制结构(if、while、for)

    控制结构就是指顺序结构.分支结构.循环结构. 一.顺序结构 这是一种最简单的程序结构,程序按语句的书写次序自上而下顺序执行. 例如:给出圆的半径,求圆的周长和面积. 源程序: >>> ...

  10. sql 分类汇总 列_分类汇总哪家强?R、Python、SAS、SQL?

    Excel数据透视表(Pivot Table)可以快速汇总大量数据,能够分类汇总和聚合数值数据,按类别和子类别汇总数据,功能十分强大,并且提供了展开.折叠.行列交换等交互式方法,对使用者来说十分的友好 ...

最新文章

  1. util.Date与sql.Date的相互转换以及区别
  2. TouTiao开源项目 分析笔记7 加载数据的过程
  3. Mark一下 | 当当优惠码,实付满150减30 | + 荐书
  4. 会计云课堂实名认证后怎么更改_会计云课堂怎么听课 网上听课步骤详解
  5. 一年多的远程办公带给我的感悟
  6. [HTML/CSS]下拉菜单
  7. 蹭热点,B站源码泄露,是道德的沦丧还是P民的福音
  8. matlab绘正态/卡方/t/F分布概率密度图
  9. 关于ECharts中调整容器与图表的位置关系
  10. 腾讯优图计算机招聘视觉大咖(2022届校招+实习)
  11. ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
  12. writev遇到非阻塞IO
  13. Wireshark内容过滤方法
  14. 2003服务器系统QQ安装不了,关于windows 2003 sp2  不能使用QQ的解决办法
  15. C语言 吃鱼还是吃肉
  16. pycharm配置可视化界面流程简介
  17. 用趋势突破策略回测CTA
  18. 2021年第一季度中国电竞行业网络关注度分析报告
  19. dockers安装Jenkins
  20. 路由器wifi密码设置

热门文章

  1. KT:一款可提升Kubernetes开发效率的免费工具
  2. Slowquery图形化显示MySQL慢日志工具
  3. 解决windows 下 mysql命令行导入备份文件 查询时乱码的问题
  4. 2017 ZSTU寒假排位赛 #5
  5. Error occurred during initialization of VM Could not reserve enough space for object heap
  6. 分享《通过开源项目去学习》
  7. 网游中的网络编程3:在UDP上建立虚拟连接
  8. DBCC CHECKDB
  9. 国外值得关注的网站系列之一
  10. 如何禁止文本框输入,但是要传值