計(jì)算至少是其他數(shù)字兩倍的最大數(shù)
在一個(gè)給定的數(shù)組nums
中,總是存在一個(gè)最大元素 。
查找數(shù)組中的最大元素是否至少是數(shù)組中每個(gè)其他數(shù)字的兩倍。
如果是,則返回最大元素的索引,否則返回-1。
示例 1:
輸入: nums = [3, 6, 1, 0]
輸出: 1
解釋: 6是最大的整數(shù), 對(duì)于數(shù)組中的其他整數(shù),
6大于數(shù)組中其他元素的兩倍。6的索引是1, 所以我們返回1.
示例 2:
輸入: nums = [1, 2, 3, 4]
輸出: -1
解釋: 4沒(méi)有超過(guò)3的兩倍大, 所以我們返回 -1.
提示:
nums
的長(zhǎng)度范圍在[1, 50]
.
- 每個(gè)
nums[i]
的整數(shù)范圍在 [0, 100]
.
來(lái)源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others
解題思路
循環(huán)一遍,記錄最大值,次大值,最后判斷如果最大值大于次大值 * 2,則返回最大值的 index,否則返回 -1
PHP 實(shí)現(xiàn)
class Solution {
/**
* @param Integer $num
* @return Boolean
*/
function dominantIndex($nums) {
$count = count($nums);
if ($count === 1) return 0;
$max = 0;
$subMax = 0;
$index = 0;
for($i = 0; $i $count; $i++) {
if($nums[$i] >= $max){
$subMax = $max;
$max = $nums[$i];
$index = $i;
} else if ($nums[$i] > $subMax) {
$subMax = $nums[$i];
}
}
return ($max >= $subMax * 2) ? $index : -1;
}
}
總結(jié)
到此這篇關(guān)于PHP 計(jì)算至少是其他數(shù)字兩倍的最大數(shù)的文章就介紹到這了,更多相關(guān)PHP 計(jì)算至少是其他數(shù)字兩倍的最大數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- php用正則判斷是否為數(shù)字的方法
- php判斷輸入是否是純數(shù)字,英文,漢字的方法
- php 快速判斷一個(gè)數(shù)字屬于什么范圍的實(shí)現(xiàn)方法
- php數(shù)字游戲 計(jì)算24算法
- 利用PHP計(jì)算有多少小于當(dāng)前數(shù)字的數(shù)字方法示例