咔叽网单游戏基地

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12|回复: 0

[PHP编程] PHP 计算至少是其他数字两倍的最大数的实现代码

[复制链接]
  • TA的每日心情
    无聊
    2019-5-27 08:20
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    1万

    主题

    1万

    帖子

    6万

    积分

    帖子管理员

    Rank: 9Rank: 9Rank: 9

    积分
    68254
    发表于 2020-7-6 21:51:13 | 显示全部楼层 |阅读模式
    计算至少是其他数字两倍的最大数
    在一个给定的数组nums中,总是存在一个最大元素 。
    查找数组中的最大元素是否至少是数组中每个其他数字的两倍。
    如果是,则返回最大元素的索引,否则返回-1。
    示例 1:
    输入: nums = [3, 6, 1, 0]
    输出: 1
    解释: 6是最大的整数, 对于数组中的其他整数,
    6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1.
    示例 2:
    输入: nums = [1, 2, 3, 4]
    输出: -1
    解释: 4没有超过3的两倍大, 所以我们返回 -1.
    提示:
      nums 的长度范围在[1, 50].每个 nums 的整数范围在 [0, 100].
    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-number-at-least-twice-of-others
    解题思路
    循环一遍,记录最大值,次大值,最后判断如果最大值大于次大值 * 2,则返回最大值的 index,否则返回 -1
    PHP 实现

    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;
    }
    }总结
    到此这篇关于PHP 计算至少是其他数字两倍的最大数的文章就介绍到这了,更多相关PHP 计算至少是其他数字两倍的最大数内容请搜索咔叽论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持咔叽论坛!

    原文地址:https://www.jb51.net/article/187369.htm
    回复

    使用道具 举报

    QQ|手机版|小黑屋|咔叽网单

    GMT+8, 2020-8-14 00:42

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表