目次
一个分拆数组的算法
Jun 06, 2016 pm 08:40 PM
php
现有如下需求:首先有个数组$arr = array(1 => 12, 2 => 23)
;现在要将该数组进行拆分,生成一个新的数组,新数组的个数如下:
<code>$newArr = array( array(2, 7), array(2, 7), array(2, 9), array(1, 3), array(1, 9), ) </code>
ログイン後にコピー
ログイン後にコピー
必须满足一下条件:
1:新数组必须是有5项;
2:必须按照原有数组中最大的值来进行先拆分,然后次大值。。。,至于每项要拆分成多少个,自行决定,
3:拆分后的数组二维中的第一个值为原有的key,值为拆分后的数值,二维中第一个值相同的加起来必须等于原来数组的key对应的值。
回复内容:
现有如下需求:首先有个数组$arr = array(1 => 12, 2 => 23)
;现在要将该数组进行拆分,生成一个新的数组,新数组的个数如下:
<code>$newArr = array( array(2, 7), array(2, 7), array(2, 9), array(1, 3), array(1, 9), ) </code>
ログイン後にコピー
ログイン後にコピー
必须满足一下条件:
1:新数组必须是有5项;
2:必须按照原有数组中最大的值来进行先拆分,然后次大值。。。,至于每项要拆分成多少个,自行决定,
3:拆分后的数组二维中的第一个值为原有的key,值为拆分后的数值,二维中第一个值相同的加起来必须等于原来数组的key对应的值。
余兴节目。我就直接粘答案了。技巧:
- 想象成一个线段,在上边随机选若干个点将其切断。统计每一段的长度相加起来就必然是正确的和值。
- 题目不禁止结果中出现0,所以选点的时候允许重复。
- 和值为负的时候,翻转成正的处理。
<code><?php header("Content-Type: text/plain; "); $input = [1 => 12, 2 => 23]; $input = [1 => 0, 2 => 0]; define("TOTAL_SEGMENTS", 5); $input_sorted = $input; asort($input_sorted); $segment_counts = []; $segment_counts[0] = mt_rand(1, TOTAL_SEGMENTS - 1); $segment_counts[1] = TOTAL_SEGMENTS - $segment_counts[0]; $result = []; for ($i_slice = 0; $i_slice </code>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7128
9


Java チュートリアル
1534
14


Laravel チュートリアル
1256
25


PHP チュートリアル
1205
29


CakePHP チュートリアル
1153
46



Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
