题目

image.png

代码

  1. class Solution {
  2. public int dominantIndex(int[] nums) {
  3. //数组的尺寸
  4. int size = nums.length;
  5. //特判
  6. if(size == 1) return 0;
  7. //一次遍历,获取最大值 ,次最大值
  8. int max = 0, secondMax =0, maxIndex = 0;
  9. for(int i = 0; i < size; i++ ) {
  10. if( nums[i] >= max) { //大于最大值,更新最大值,最大值坐标,次最大值
  11. secondMax = max;
  12. max = nums[i];
  13. maxIndex = i;
  14. } else if( nums[i] > secondMax) { //大于次最大值,更新次最大值
  15. secondMax = nums[i];
  16. }
  17. }
  18. //次最大值为0,返回maxIndex
  19. //最大值的大于等于次最大值的二倍返回maxIndex,否则-1
  20. return secondMax == 0 ? maxIndex : ( (max / secondMax) >= 2 ? maxIndex : -1 );
  21. }
  22. }