var arr = [1,2,3,4,1] 怎么取出相同值的下标啊?,也就是取出第一个和最后一个的下标
3 回答
HUH函数
TA贡献1836条经验 获得超4个赞
个人觉得问题不够明确:
重复几次?
重复项的值是否为number类型?
如果是题目中所说的
var arr = [1,2,3,4,1]
也就是每一项都是数字,并且最多重复两次。
那么可以试试下面的代码:
let a = [1,2,3,4,1];
//对a[a[i]-1]的值取反,则不重复的数为负数,重复的数为正数
for(let i = 0;i<a.length;i++){
let index = Math.abs(a[i])-1;
a[index] = -a[index];
}
//a = [1, -2, -3, -4, 1]
//遍历输出大于0的项的下标
for(let i = 0;i<a.length;i++){
if(a[i]>0){
console.log(i)
}
}
时间复杂度O(n)。
添加回答
举报
0/150
提交
取消