zoukankan      html  css  js  c++  java
  • 1.两数之和

    题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
    示例:
    给定 nums = [2, 7, 11, 15], target = 9
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    • 暴力破解法:双层循环,第一层循环从前到后遍历数组中的每个元素,第二层循环,遍历当前数组之后的元素,判断二者之和是否满足target。时: O(n2)  空:O(1)
      /**
       * Note: The returned array must be malloced, assume caller calls free().
       */
      
      //C语言
      
      int* twoSum(int* nums, int numsSize, int target, int* returnSize){
          int i,j = 0;
          *returnSize = 2;
          int *arr = (int *)malloc(sizeof(int) * 2);
          arr[0] = 0;
          arr[1] = 0;
          for(i = 0; i < numsSize - 1; i++){
              for(j = i + 1; j < numsSize; j++){
                  if(nums[i] + nums[j] == target) {
                      arr[0] = i;
                      arr[1] = j;
                      return arr;
                  }
              }
          }
          return arr;
      }

      //JS
      
      var twoSum = function(nums, target) {
          var i, j, resultArr = [];
          for(i = 0; i < nums.length - 1; i++){
              for(j = i + 1; j < nums.length; j++)
                  if(nums[i] + nums[j] == target){
                      resultArr.push(i, j);
                      return resultArr;
                  }
          }
      };
    • 哈希表法
      //JS
      
      /**
       * @param {number[]} nums
       * @param {number} target
       * @return {number[]}
       */
      var twoSum = function(nums, target) {
          let map = {}; //key:数字 value:下标
          let i = 0, diff = 0;
          while(i < nums.length){
              diff = target - nums[i];
              if(map[diff] != undefined) //这里应对undefined做判断,不然出现下标是0的情况也会被过滤
                  return [map[diff], i];
              else 
                  map[nums[i]] = i;
              i++;
          }
          return;
      };
      

        

        

        

  • 相关阅读:
    [离散数学]集合3.1、3.2、3.3
    Hadoop YARN ResourceManager 未授权访问漏洞复现
    dns域传送漏洞
    文件包含漏洞详解
    XXE漏洞详解
    常见cms
    IP地址详解
    帧详解
    IP包头内容详解
    SSRF漏洞详解
  • 原文地址:https://www.cnblogs.com/JesseyWang/p/12937719.html
Copyright © 2011-2022 走看看