使用Bash查找唯一的整数

时间:2016-09-22 01:59:47

标签: bash

Hackerrank" Lonely Integer"有以下要求。 给定一组大小为N的整数,找到不重复的整数。

我是Bash noob。我发现bash有很多问题,例如,我何时使用while(())vs [[]],vs while []?

我在过去1小时内一直在调试这段代码......它花了太长时间,这个问题并不难。我使用最天真的方式来做问题,这种方式的运行时间为O(n ^ 2)

编译器抱怨

"solution.sh: line 7: [: 1: integer expression expected"

我试图将while循环更改为while(()),而[[]],而[],没有一个工作!!

我的主要问题是,有人可以向我指出为什么我的代码不起作用吗?!

hackerrank无法提供解决方案

谢谢!

read N
read line
declare -a array=( $line )

i=0
k=0
while [ $i -lt $N ]
do
    isunique=1
    j=0
    while [ $j -lt $N ]
    do
        if [[ ${array[$i]} -eq ${array[$j]} ]] && [[ $i -ne $j ]]
        then
            isunique=0
            break
        fi
        j=$((j+1))
    done
    if [ $isunique -eq 1 ]
    then
        unique[$k]=${array[$i]}
        k=$((k+1))
    fi
    i=$((i+1))
done

echo ${unique[@]}
exit 0

0 个答案:

没有答案