美文网首页
1.两数之和

1.两数之和

作者: 无名的殇 | 来源:发表于2018-05-10 11:46 被阅读0次

leetcode算法学习,打算每日1篇

自己写的代码太low就不上了,主要是对最优代码的注释和自己的小小理解

题目


思路
1.确定取值范围
2.范围内查看有没有匹配的数字
代码

int* twoSum(int* nums, int numsSize, int target) {
    
    //第1步:找到最小的数
    int min = 2147483647;
    int i = 0;
    for (i = 0; i < numsSize; i++) {
        if (nums[i] < min)
            min = nums[i];
    }
    //第2步:确定取值范围
    int max = target - min;
    int len = max - min + 1;
    int *table = (int*)malloc(len*sizeof(int));
    int *res = (int*)malloc(2*sizeof(int));
    for (i = 0; i < len; i++) {
        table[i] = -1;
    }
    //第3步:*确认符合条件数字位置
    for (i = 0; i < numsSize; i++)
    {
        if (nums[i]-min < len) {//3.1:是否在范围内
            //3.3:这是第3步,因为一开始不会执行,和第二步相呼应。
            if (table[target-nums[i]-min] != -1)//需求值-当前值获得的下标如果能在数组内找到,则证明找到了答案
            {
                res[0] = table[target-nums[i] - min];
                res[1] = i;
                return res;
            }
            table[nums[i] - min] = i;//3.2:减去min使下标能存放进数组
        }
    }
    free(table);
    return res;
}

相关文章

  • 1. 两数之和

    https://leetcode-cn.com/problems/two-sum/description/给定一个...

  • 1. 两数之和

    内容 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素...

  • 1. 两数之和

    20180919-摘抄自1. 两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每...

  • 1. 两数之和

    1、暴力法,求target-num[current]是否满足 2、哈希表

  • 1. 两数之和

    代码 分析 主要是利用map集合来存储值,存储的是下一下要找的值和当前的索引,然后找到的时候就可以知道这两个索引

  • 1. 两数之和

    一、题目原型: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同...

  • 1.两数之和

    题目: 给定一个整数数列,找出其中和为特定值的那两个数。 你可以假设每个输入都只会有一种答案,同样的元素不能被重用...

  • 1.两数之和

    leetcode算法学习,打算每日1篇 自己写的代码太low就不上了,主要是对最优代码的注释和自己的小小理解 题目...

  • 1. 两数之和

    LeetCode 的算法题 PHP解法记录 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假...

  • 1. 两数之和

    https://leetcode-cn.com/problems/two-sum/description/给定一个...

网友评论

      本文标题:1.两数之和

      本文链接:https://www.haomeiwen.com/subject/ddrzrftx.html