1-10的数组,按指定的个数,依次取,计算每次取到的数组

Posted 风意不止

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-10的数组,按指定的个数,依次取,计算每次取到的数组相关的知识,希望对你有一定的参考价值。

第一种方法,改变数组的方法

<?php
$kaochang=[1,2,3,4,5,6,7,8,9,10];
$kaodian=[2,3,2,3];

$temp=[];
foreach($kaodian as $k=>$v)
	
	$newkaochang=array_splice($kaochang,$v);
	$remove=array_diff($kaochang,$newkaochang);
	
	$kaochang=$newkaochang;
	
	$temp[$k]=$remove;
	


print_r($temp);

// [[1,2],[3,4,5],[6,7],[8,9,10]]
?>

第二种,不改变数组的方法

<?php
$kaochang=[1,2,3,4,5,6,7,8,9,10];
$lengthArr=[2,5,3];

$start=0;
$group=[];
foreach($lengthArr as $k=>$v)
	
	$temp=array_slice($kaochang,$start,$v);
	$start=$start+$v;
	$group[$k]=$temp;
	

print_r($group);
// [[1,2],[3,4,5,6,7],[8,9,10]]
?>

计算最小数组环

队友:

一、分析

先将一个长度为n的数组扩大两倍,即在这个数组后加一个一样的数组,然后依次取长度为n,数组开头元素为原数组的单元构成n个数组。对n个数组依次进行求最大子数组和,然后在这一堆和里找出最大和。

二、代码

str1="4 -2 3 -1 -1 10"
print"请输入一个数组"
str1=raw_input()
counter_1=0
str2=str1+" "+str1
str2=str2.split()
#print str2
counter_1=0

for i in str2:
    counter_1=counter_1+1
counter_1=counter_1/2
#print counter_1
answer_array=[0]*counter_1


for j in range(0,counter_1):
    str3=str2[j:j+counter_1]
    #print"str3",str3

    sum_record_unexcept=0
    str3[0]=int(str3[0])
    sum_constant_add=0

    for i in str3:
        i=int(i)
        sum_record_unexcept=max(sum_record_unexcept,sum_constant_add)
        sum_constant_add=max(sum_constant_add+i,i)
    answer_array[j]=max(sum_constant_add,sum_record_unexcept)
    #print "answer_array[i]",answer_array[j]

#print"answer",answer_array
maxment=answer_array[0]
for i in answer_array:
    if(maxment<i):
        maxment=i

print"最大值为",maxment

三、运行结果

技术分享技术分享

以上是关于1-10的数组,按指定的个数,依次取,计算每次取到的数组的主要内容,如果未能解决你的问题,请参考以下文章

csp-s模拟84

如何从一个datatable中依次取得前100条数据,直到取完为止

java、获得数组的全部组合

有十亿个数据如何取到最小的十个

给定的数组任意取出三个数(要求全部取到且不能重复)求和,找出和中最小值 Java 说说思路或者算法就

计算最小数组环