Add solution 747

This commit is contained in:
halfrost
2022-01-24 22:22:22 +08:00
parent ac7a582c74
commit 9e186518c6
3 changed files with 84 additions and 2 deletions

View File

@ -0,0 +1,82 @@
# [747. Largest Number At Least Twice of Others](https://leetcode.com/problems/largest-number-at-least-twice-of-others/)
## 题目
You are given an integer array `nums` where the largest integer is **unique**.
Determine whether the largest element in the array is **at least twice** as much as every other number in the array. If it is, return *the **index** of the largest element, or return* `-1` *otherwise*.
**Example 1:**
```
Input: nums = [3,6,1,0]
Output: 1
Explanation: 6 is the largest integer.
For every other number in the array x, 6 is at least twice as big as x.
The index of value 6 is 1, so we return 1.
```
**Example 2:**
```
Input: nums = [1,2,3,4]
Output: -1
Explanation: 4 is less than twice the value of 3, so we return -1.
```
**Example 3:**
```
Input: nums = [1]
Output: 0
Explanation: 1 is trivially at least twice the value as any other number because there are no other numbers.
```
**Constraints:**
- `1 <= nums.length <= 50`
- `0 <= nums[i] <= 100`
- The largest element in `nums` is unique.
## 题目大意
给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。
## 解题思路
- 简单题。先扫描一遍找到最大值和下标。再扫描一遍检查最大值是否是其他数字的两倍。
## 代码
```go
package leetcode
func dominantIndex(nums []int) int {
maxNum, flag, index := 0, false, 0
for i, v := range nums {
if v > maxNum {
maxNum = v
index = i
}
}
for _, v := range nums {
if v != maxNum && 2*v > maxNum {
flag = true
}
}
if flag {
return -1
}
return index
}
```
----------------------------------------------
<div style="display: flex;justify-content: space-between;align-items: center;">
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0700~0799/0746.Min-Cost-Climbing-Stairs/">⬅️上一页</a></p>
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0700~0799/0748.Shortest-Completing-Word/">下一页➡️</a></p>
</div>

View File

@ -104,6 +104,6 @@ func match(lp [26]int, w string) bool {
----------------------------------------------
<div style="display: flex;justify-content: space-between;align-items: center;">
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0700~0799/0746.Min-Cost-Climbing-Stairs/">⬅️上一页</a></p>
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0700~0799/0747.Largest-Number-At-Least-Twice-of-Others/">⬅️上一页</a></p>
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0700~0799/0752.Open-the-Lock/">下一页➡️</a></p>
</div>

View File

@ -124,5 +124,5 @@ func numFactoredBinaryTrees1(arr []int) int {
----------------------------------------------
<div style="display: flex;justify-content: space-between;align-items: center;">
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0800~0899/0821.Shortest-Distance-to-a-Character/">⬅️上一页</a></p>
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0800~0899/0826.Most-Profit-Assigning-Work/">下一页➡️</a></p>
<p><a href="https://books.halfrost.com/leetcode/ChapterFour/0800~0899/0825.Friends-Of-Appropriate-Ages/">下一页➡️</a></p>
</div>