美文网首页
1. 两数之和

1. 两数之和

作者: 引擎雪 | 来源:发表于2020-07-18 10:44 被阅读0次

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

该题目在力扣是第1题,地址是 https://leetcode-cn.com/problems/two-sum

下面介绍用oc改怎么做这道题

原理

利用映射,也就是oc中的字典,以数值为key,以下标为value进行保存
用target的值减去数组中正在遍历的值,以减去后的值为key去字典的allkeys中查找有没有对应的key,有就返回key所对应的value,没有就加入字典中

代码

  
  NSMutableDictionary *dic = [NSMutableDictionary dictionary];
  
  for (int i = 0; i < array.count; i++) {
    NSString *obj = array[i];
    
    NSInteger num = [obj integerValue];
    
    NSInteger needNum = target - num;
    NSString *numStr = [NSString stringWithFormat:@"%ld",needNum];
    
    if ([dic.allKeys containsObject:numStr]) {
      
      return @[dic[numStr],@(i)];
    }else{
      
      dic[obj] = @(i);
    }
    
  }
  return @[@-1,@-1];
}

调用

- (void)viewDidLoad {
  [super viewDidLoad];
 
  NSArray *nums = @[@"2", @"7", @"11", @"15"];
  NSInteger target = 22;
  
  NSArray *twoIndex = [self twoSum:nums target:target];
  
  
}

相关文章

  • 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/kisxkktx.html