js实现 输出数组中第一个唯一数的下标

输出数组中第一个唯一数的下标

题目描述:

  • 输入一个整数数组,数组中有些数只出现过一次,我们称它为“唯一数”,出现过两次或两次以上的数不是唯一数。请编写一段代码寻找出数组中第一个出现的唯一数,输出该唯一数的下标。
  • 如果有多个唯一数的情况,请输出第一个唯一数的下标
  • 如果数组中没有找到唯一数,请输出-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:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值