输出数组中第一个唯一数的下标
题目描述:
- 输入一个整数数组,数组中有些数只出现过一次,我们称它为“唯一数”,出现过两次或两次以上的数不是唯一数。请编写一段代码寻找出数组中第一个出现的唯一数,输出该唯一数的下标。
- 如果有多个唯一数的情况,请输出第一个唯一数的下标
- 如果数组中没有找到唯一数,请输出-1,作为异常下标,表示没有找到唯一数。
输入描述:
- 输入第一行为数组的长度n;
- 第二行是数组中n个数,数与数之间用空格隔开
输出描述:
输出数组的第一个唯一数的下标或者-1(如果没有唯一数)
样例输入:
12
1 2 2 1 2 3 1 -123 345 5 4 6
样例输出:
3
详解代码:
function onlynumber(length,str){
let flag = 0;
let result = null;
var arr = str.split(' ') //字符穿切割并转为数组
for(let i=0;i<length;i++){
for(let j=0;j<length;j++){
if(i!=j){
if(arr[i]==arr[j]){ //有相同值
flag=1;
break;
}
if(j==length-1){ //无相同值
flag=2;
break;
}
}
}
if(i==length-1){ //无唯一数
result=-1;
}
if(flag==1){ //有相同值时跳出本次循环
continue;
}
if(flag==2){ //无相同值时将该数赋值给result
result=arr[i]
break;
}
}
console.log(result);
//return result;
}
输入参数样例1:
var str = '1 2 2 1 2 3 1 -123 345 5 4 6'
var len = 12;
onlynumber(len,str);
输出结果1:
输入参数样例2:
var str = '1 2 2 1 2 '
var len = 4;
onlynumber(len,str);
输出结果2: