- 論壇徽章:
- 95
|
本帖最后由 MMMIX 于 2015-08-25 10:30 編輯
回復(fù) 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);
復(fù)制代碼 |
|