实现一个函数, // 判断一个给定整数数组中是否存在某两个元素之和恰好等于一个给定值 k, // 存在则返回 true,否则返回 false。
Posted jun881821
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现一个函数, // 判断一个给定整数数组中是否存在某两个元素之和恰好等于一个给定值 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
以上是关于实现一个函数, // 判断一个给定整数数组中是否存在某两个元素之和恰好等于一个给定值 k, // 存在则返回 true,否则返回 false。的主要内容,如果未能解决你的问题,请参考以下文章
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否函数该整数。 ```java publi(代码
python 一个二维数组和一个整数,判断数组中是否含有该整数
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。