【发布时间】:2021-11-29 07:10:55
【问题描述】:
我正在尝试解决一个 leetcode 类型问题,这是一个练习问题,伴随着即将到来的代码测试,我需要为一份工作而做,但我遇到了麻烦。谁能帮我理解出了什么问题?
我基本上是在寻找蛮力选项,因为我不知道算法/DS。
PROBLEM:
写一个函数:
函数解(A);
给定一个包含 N 个整数的数组 A,返回在 A 中没有出现的最小正整数(大于 0)。
例如,给定 A = [1, 3, 6, 4, 1, 2],函数应该返回 5。
给定 A = [1, 2, 3],函数应该返回 4。
给定 A = [−1, −3],函数应该返回 1。
为以下假设编写一个有效的算法:
N 是 [1..100,000] 范围内的整数; 数组 A 的每个元素都是 [−1,000,000..1,000,000] 范围内的整数。
HERE IS MY SOLUTION:
function solution(A) {
let newArray = A.sort(function(a, b){return a-b})
let lowestNumber = 1
for(i=0; i < newArray.length; i++) {
if(lowestNumber > newArray[0]) {
return lowestNumber
}
if(lowestNumber == newArray[i]) {
lowestNumber = lowestNumber + 1
}
if(i = newArray.length - 1) {
return lowestNumber
}
}
}
下面的 sn-p 没有像我期望的那样工作。最低数字没有增加,我相信循环也在这里退出。
if(lowestNumber == newArray[i]) {
lowestNumber = lowestNumber + 1
感谢您的帮助!
【问题讨论】:
-
您是否尝试过使用浏览器开发工具调试器单步执行您的代码?
标签: javascript arrays for-loop