實現一個函數, // 判斷一個給定整數數組中是否存在某兩個元素之和恰好等於一個給定值 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):數組類:第217題:給定一個整數數組,判斷是否存在重復元素。 如果任意一值在數組中出現至少兩次,函數返回 true 。如果數組中每個元素都不相同,則返回 false 。 給定一個整數數組 nums 和一個目標值 k,請實現一個方法判斷 nums 中是否存在某個片段(即若干個相連元素)之和等於 k。要求時間復雜度為 O(n)。 給定一個非空的整數數組,返回其中出現頻率前 k 高的元素。 php 獲取兩個給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。 給一個整數數組,找到兩個數使得他們的和等於一個給定的數 target。 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target  的那 兩個 整數,並返回它們的數組下標。 C/C++ 在一個一維數組中查找兩個數,使得它們之和等於給定的某個值 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。 給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。 刷題:給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM