[Leetcode] 628. 3つの数の最大積java(ソート)

648 ワード

整数配列を与え,配列中に3つの数からなる最大積を見つけ,この積を出力する.
例1:
  : [1,2,3]
  : 6

例2:
  : [1,2,3,4]
  : 24

注意:
  • で与えられた整数配列の長さ範囲は[3404]、配列内のすべての要素範囲は[−1000,1000]である.
  • 入力された配列の任意の3つの数の積は、32ビットの符号付き整数の範囲を超えません.

  • コードは他の人のもので、簡単で、その時はよく考えられませんでした.自分が考えていたのは遍歴して、3つの最大数を探していたが、論理は混乱しやすい.
    class Solution {
        public int maximumProduct(int[] nums) {
            Arrays.sort(nums);//  
            int a=nums[nums.length-1]*nums[nums.length-2]*nums[nums.length-3];      
            int b=nums[0]*nums[1]*nums[nums.length-1];//             
            return a>b?a:b;
        }
    }