候鸟解决方案 - PHP-
Migratory Birds solution - PHP-
我在 PHP 中为这个 practice 写了这个解决方案,但它并不适用于所有情况:
给定一个鸟类观察数组,其中每个元素代表一个鸟类类型 id,请确定最常看到的类型的 id。如果发现超过 1 种类型的最大数量,return 最小的 ID。
arr=[1,1,2,2,3]
示例
类型 1 和类型 2 各有两个,还有一个类型 .3 在看到两次的两种类型中选择较低的类型:类型 1。
函数说明
在下面的编辑器中完成migratoryBirds功能。
migratoryBirds 具有以下参数:
int arr[n]: 观察到的鸟类种类
Returns
int:最常见鸟类的最低类型id
输入格式
第一行包含一个整数 n ,其大小为 arr 。
第二行将 arr 描述为 n 个 space 分隔的整数,每个整数都是所见鸟类的类型编号。
约束条件
5 < n < 2 X 10 2
保证每个类型都是1,2,3,4,5。
样本输入 0
6个
1 4 4 4 5 3
样本输出 0
4
这是我的代码
function migratoryBirds($arr) {
// Write your code here
$length=count($arr);
$a1=0;$a2=0;$a3=0;$a4=0;$a5=0;
for($i=0; $i < $length; $i++){
if($arr[$i]==1){
$a1++;
}
if($arr[$i]==2){
$a2++;
}
if($arr[$i]==3){
$a3++;
}
if($arr[$i]==4){
$a4++;
}
if($arr[$i]==5){
$a5++;
}
}
if($a1>=$a2 && $a1>=$a3 && $a1>=$a4 && $a1>=$a5){
$result=1;
}
if($a2>=$a1 && $a2>=$a3 && $a2>=$a4 && $a2>=$a5){
$result=2;
}
if($a3>=$a2 && $a3>=$a1 && $a3>=$a4 && $a3>=$a5){
$result=3;
}
if($a4>=$a2 && $a4>=$a3 && $a4>=$a1 && $a4>=$a5){
$result=4;
}
if($a5>=$a2 && $a5>=$a3 && $a5>=$a4 && $a5>=$a1){
$result=5;
}
return $result;
}
我该如何解决?
这样写你的条件
if($a1>=$a2 && $a1>=$a3 && $a1>=$a4 && $a1>=$a5){
$result=1;
}
else if($a2>=$a1 && $a2>=$a3 && $a2>=$a4 && $a2>=$a5){
$result=2;
}
else if($a3>=$a2 && $a3>=$a1 && $a3>=$a4 && $a3>=$a5){
$result=3;
}
else if($a4>=$a2 && $a4>=$a3 && $a4>=$a1 && $a4>=$a5){
$result=4;
}
else if($a5>=$a2 && $a5>=$a3 && $a5>=$a4 && $a5>=$a1){
$result=5;
}
else{
$result=1;
}
我在 PHP 中为这个 practice 写了这个解决方案,但它并不适用于所有情况:
给定一个鸟类观察数组,其中每个元素代表一个鸟类类型 id,请确定最常看到的类型的 id。如果发现超过 1 种类型的最大数量,return 最小的 ID。
arr=[1,1,2,2,3]
示例
类型 1 和类型 2 各有两个,还有一个类型 .3 在看到两次的两种类型中选择较低的类型:类型 1。
函数说明
在下面的编辑器中完成migratoryBirds功能。
migratoryBirds 具有以下参数:
int arr[n]: 观察到的鸟类种类 Returns
int:最常见鸟类的最低类型id 输入格式
第一行包含一个整数 n ,其大小为 arr 。 第二行将 arr 描述为 n 个 space 分隔的整数,每个整数都是所见鸟类的类型编号。
约束条件 5 < n < 2 X 10 2
保证每个类型都是1,2,3,4,5。
样本输入 0
6个
1 4 4 4 5 3
样本输出 0
4
这是我的代码
function migratoryBirds($arr) {
// Write your code here
$length=count($arr);
$a1=0;$a2=0;$a3=0;$a4=0;$a5=0;
for($i=0; $i < $length; $i++){
if($arr[$i]==1){
$a1++;
}
if($arr[$i]==2){
$a2++;
}
if($arr[$i]==3){
$a3++;
}
if($arr[$i]==4){
$a4++;
}
if($arr[$i]==5){
$a5++;
}
}
if($a1>=$a2 && $a1>=$a3 && $a1>=$a4 && $a1>=$a5){
$result=1;
}
if($a2>=$a1 && $a2>=$a3 && $a2>=$a4 && $a2>=$a5){
$result=2;
}
if($a3>=$a2 && $a3>=$a1 && $a3>=$a4 && $a3>=$a5){
$result=3;
}
if($a4>=$a2 && $a4>=$a3 && $a4>=$a1 && $a4>=$a5){
$result=4;
}
if($a5>=$a2 && $a5>=$a3 && $a5>=$a4 && $a5>=$a1){
$result=5;
}
return $result;
}
我该如何解决?
这样写你的条件
if($a1>=$a2 && $a1>=$a3 && $a1>=$a4 && $a1>=$a5){
$result=1;
}
else if($a2>=$a1 && $a2>=$a3 && $a2>=$a4 && $a2>=$a5){
$result=2;
}
else if($a3>=$a2 && $a3>=$a1 && $a3>=$a4 && $a3>=$a5){
$result=3;
}
else if($a4>=$a2 && $a4>=$a3 && $a4>=$a1 && $a4>=$a5){
$result=4;
}
else if($a5>=$a2 && $a5>=$a3 && $a5>=$a4 && $a5>=$a1){
$result=5;
}
else{
$result=1;
}