- 论坛徽章:
- 95
|
本帖最后由 MMMIX 于 2015-08-25 10:30 编辑
回复 2# 赛萌
基本上直接翻译就可以了:
- #!/usr/bin/perl
- use strict;
- use warnings;
- use v5.14;
- use Data::Dumper;
- sub split_array {
- my ($diff, @arr) = @_;
- my @subarrs;
- while (@arr) {
- my @subarr;
- my $e1 = shift @arr;
- push @subarr, $e1;
- while (@arr) {
- my $e2 = shift @arr;
- if ($e2 - $e1 < $diff) {
- push @subarr, $e2;
- $e1 = $e2;
- } else {
- unshift @arr, $e2;
- last;
- }
- }
- push @subarrs, \@subarr;
- }
- \@subarrs;
- }
- my @arr = (1, 3, 6, 8, 14, 15, 21, 23);
- print Dumper(split_array 5, @arr);
复制代码 |
|