博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1. Two Sum
阅读量:6274 次
发布时间:2019-06-22

本文共 1192 字,大约阅读时间需要 3 分钟。

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.

Example:

Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].

我的daim

/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target) {    int i,j,mark = 0,minus = 1;    if(target < 0) minus = -1;    int *indices = (int*)malloc(sizeof(int) * 2);    for(i=0;i
minus * target) continue;        for(j=i+1;j != i && j

别人的代码,将之前访问过的元素存在数组中,O(n),虽然很快,但是正式的做法应该是存在Hash表里面。

int* twoSum(int* nums, int numsSize, int target) {    int _[100001] = {0}, *index_plus_one = _ + 50000;    for (int i = 0; i < numsSize; i++) {        int rest = target - nums[i];        if (index_plus_one[rest]) {            int *ans = malloc(sizeof(int) * 2);            ans[0] = i;            ans[1] = index_plus_one[rest] - 1;            return ans;        }        else            index_plus_one[nums[i]] = i + 1;    }    return NULL;}

转载于:https://www.cnblogs.com/JingwangLi/p/10202806.html

你可能感兴趣的文章
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
多线程基础知识
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>