• 实现一个函数, // 判断一个给定整数数组中是否存在某两个元素之和恰好等于一个给定值 k, // 存在则返回 true,否则返回 false。


    实现一个函数,判断一个给定整数数组中是否存在某两个元素之和恰好等于一个给定值 k,存在则返回 true,否则返回
    false。该函数的输入参数有两个,第一个参数为整数数组 nums,第二个参数为整数 k,返回值为布尔值。【不要使用排序!要求时间复杂度为
    O(n),n 为数组长度】

    解决思路:遍历每个元素,让指定值减去每一个元素,得到的数字再判断是否在数组中存在,存在返回true,否则返回false

    var checkTwoSum = function (nums, k) {
      if (nums.length >= 2) {
        var result = "";
        nums.forEach(item => {
          var i = k - item;
          var j = nums.indexOf(i); // 检验是否存在字符串  不存在返回 -1
          if (j == -1) {
            result = false;
          } else {
            result = true;
          }
        });
        return result;
      } else {
        console.log("数组元素至少需要两个");
      }
    }
    // 测试
    // console.log(checkTwoSum([2, 4, 5], 9));  // true
    // console.log(checkTwoSum([2, 4, 6], 9));  // false

    第二种方法,使用排序

    // 1.数组的长度必须大于等于2
      if (nums.length <= 1) {
        return false
      }
      // 2.先对数组排序
      nums.sort(function (a, b) {
        if (a > b) {
          return 1
        } else if (a < b) {
          return -1
        } else {
          return 0
        }
      })
      // 3.
      var i = 0;
      var j = nums.length - 1;
      while (i < j) {
        // console.log(nums[i] + nums[j]);
        if (nums[i] + nums[j] == k) {
          return true
        } else if (nums[i] + nums[j] < k) {
          i++;
        } else {

          j--;
        }
      }
      //4. 没有找到返回false
      return false;
    };

    // 测试
    // console.log(checkTwoSum([2, 4, 1, 8, 5, 3, 11], 2));   // false
    // console.log(checkTwoSum([2, 4, 1, 8, 5, 3, 11], 6));   // true
    原文链接:https://blog.csdn.net/a5252145/java/article/details/105070381

  • 相关阅读:
    javascript 如何获取return回来的对象值
    遮罩层背景设置
    Javascript跨域请求的几种解决方法
    手机端viewport的设置规范
    javascript定义类和类的实现
    javascript 中对this关键字的一些理解
    实例化对象的时候。其实就是调用构造函数
    Javascript定义类(class)的三种方法
    javascript面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
    JavaScript判断横屏/竖屏
  • 原文地址:https://www.cnblogs.com/jun881821/p/13151526.html
Copyright © 2020-2023  润新知