js实现一个整数数组,找出其中最小的正整数的index,若找不到则返回-1.如输入:[-1,0,1,2,3],返回2。要求只遍历一次
时间: 2024-02-27 11:57:19 浏览: 107
好的,可以使用JavaScript实现该算法,以下是示例代码:
```javascript
function findSmallestPositiveIntegerIndex(arr) {
let minPositiveInt = Infinity;
let minPositiveIntIndex = -1;
for (let i = 0; i < arr.length; i++) {
if (arr[i] > 0 && arr[i] < minPositiveInt) {
minPositiveInt = arr[i];
minPositiveIntIndex = i;
}
}
return minPositiveIntIndex;
}
const arr = [-1, 0, 1, 2, 3];
const result = findSmallestPositiveIntegerIndex(arr);
console.log(result); // 输出 2
```
解释一下实现思路:
1. 首先定义两个变量 `minPositiveInt` 和 `minPositiveIntIndex`,分别表示最小的正整数和其在数组中的下标,将 `minPositiveInt` 初始化为正无穷,`minPositiveIntIndex` 初始化为 -1。
2. 遍历数组,如果当前元素为正整数且小于 `minPositiveInt`,则将当前元素赋值给 `minPositiveInt`,同时更新 `minPositiveIntIndex` 为当前下标。
3. 遍历结束后,如果 `minPositiveIntIndex` 仍为 -1,则说明数组中没有正整数,返回 -1;否则返回 `minPositiveIntIndex`。
4. 由于只遍历了一次数组,所以时间复杂度为 O(n)。
希望能够帮到您,如有疑问请随时追问。
阅读全文