zoukankan      html  css  js  c++  java
  • shell--数组 组合 高级应用

    #!/bin/bash
    # 用shell中的数组构造统计不同的组合个数.
    
    # 下面的组合有(1,6)(3,4)(5,5)(1,6)(5,5)(4,3)(1,8)
    # 不同的组合为(1,6)(3,4)(5,5)(4,3)(1,8)
    arrayLeft=(1 3 5 1 5 4 1)
    arrayRight=(6 4 5 6 5 3 8)
    
    # comNum用来表示不同组合个数
    comNum=0
    arrayLeftLength=${#arrayLeft[*]}
    if [[ arrayLeftLength -ge 1 ]]
    then
        array[0]="${arrayLeft[0]} ${arrayRight[0]}"
        arrayDiff[0]=${array[0]}
        ((comNum+=1))
    fi
    
    for ((i=1;i<arrayLeftLength;i++))
    do
        array[$i]="${arrayLeft[$i]} ${arrayRight[$i]}"
        sameFlag=0
        for ((j=0;j<=$(($i-1));j++))
        do
            if [[ "${array[$i]}" = "${array[$j]}" ]]
            then
                sameFlag=1
                break
            fi
        done
    
        if [[ sameFlag -eq 1 ]]
        then
            :
        else
            arrayDiff[$comNum]=${array[$i]}
            ((comNum+=1))
        fi
    done
    
    echo $comNum
    echo ${array[*]}
    echo ${arrayDiff[*]}
    for ((i=0;i<arrayLeftLength;i++))
    do
        echo ${arrayDiff[$i]}
    done
  • 相关阅读:
    文摘
    Maximal Square leetcode
    Majority Element II
    Merge k Sorted Lists leetcode
    学习方法-暗时间
    4sum leetcode
    valid parentheses
    两道考研算法设计题- 2010 2013
    regular expression matching DP
    valid sudoku leetcode
  • 原文地址:https://www.cnblogs.com/helloweworld/p/3751936.html
Copyright © 2011-2022 走看看