主題

LeetCode - 747. Largest Number At Least Twice of Others 解題心得

Not In My Back Yard | 2021-01-07 00:00:08 | 巴幣 0 | 人氣 84

題目連結:


題目意譯:
給定整數陣列 nums,保證有唯一一個最大的元素。

判斷陣列中最大的元素是否至少為值陣列中其餘每個元素的兩倍大。

如果是,回傳最大元素的索引值。反之,回傳 -1 。

注:
nums 之長度位於範圍 [1, 50] 之間。
每個 nums[i] 會位於 [0, 99] 之間。



範例測資:
範例 1:
輸入: nums = [3, 6, 1, 0]
輸出: 1
解釋: 6 是最大的整數,而且對於每個其他的陣列中的元素 x,6 都至少是 x 的兩倍大。6 的索引值為 1 ,所以回傳 1。

範例 2:
輸入: nums = [1, 2, 3, 4]
輸出: -1
解釋: 4 並不是 3 的至少兩倍大。所以我們回傳 -1 。


解題思維:
找到陣列中最大的以及第二大的,然後比較最大的是不是第二大的兩倍大以上。如果是,則代表最大的一定是其他元素的兩倍大以上,所以回傳最大的元素之索引值;反之則不是,所以回傳 -1 。

而找尋最大以及第二大的方式可以參見這題的方法。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作