文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>据说是迅雷的一个嵌入式开发题

据说是迅雷的一个嵌入式开发题

时间:2010-09-17  来源:nianzong

在CU上看到的:
计算一个整形数组里的连续元素和的最大值
例:{9, -12, 120, 8, -20, 100, 30, -89, 20}
结果是{120, 8 , -20, 100, 30}的和最大,为 238

当然,本意是要用c实现,我们用shell来试试,


首先得知道最大值:
#!/bin/bash
num=(9 -12 120 8 -20 100 30 -89 20)
max_sum=0
for ((i=0;i<${#num[@]};i++))
do
    for ((l=2;l<${#num[@]};l++))
    do
        let s$l=0;
        for ((j=$i;j<$l;j++));
        do
            let s$l+=${num[j]};
        done
        if [ "$max_sum" -lt "$((s$l))" ];then
            max_sum=$((s$l))
        else
            continue;
        fi
    done
done
echo $max_sum

=============

然后根据结果查找序列:(就加了几行蓝色代码)
#!/bin/bash
num=(9 -12 120 8 -20 100 30 -89 20)
max_sum=0
for ((i=0;i<${#num[@]};i++))
do
    for ((l=2;l<${#num[@]};l++))
    do
        let s$l=0;
        for ((j=$i;j<$l;j++));
        do
            let s$l+=${num[j]};
        done
        if [ "$max_sum" -lt "$((s$l))" ];then
            max_sum=$((s$l))
        else
            continue;
        fi
        if [ "$((s$l))" -eq "238" ];then
            echo ${num[i]} $l
        fi
    done
done
echo $max_sum
#
# sh maxsum.sh
120 7       #原始序列中120开始,长度为7的序列,也即: 120 8 -20 100 30 -89 20
238
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载