747. Largest Number At Least Twice of Others

题目文本会按所选界面语言从俄语翻译;代码保持不变。

Вам дан 整数 数组 nums, в котором наибольшее 整数 уникально. Определите, является ли наибольший element 数组а по крайней мере в два раза больше всех остальных чисел в 数组е. Если да, то return индекс самого большого elementа, в противном случае return -1.

示例:

Input: nums = [3,6,1,0]

Output: 1

C# 解法

匹配/原始
public class Solution {
    public int MinCostClimbingStairs(int[] cost) {
        int n = cost.Length;
        int[] dp = new int[n];
        dp[0] = cost[0];
        dp[1] = cost[1];
        for (int i = 2; i < n; i++) {
            dp[i] = cost[i] + Math.Min(dp[i - 1], dp[i - 2]);
        }
        return Math.Min(dp[n - 1], dp[n - 2]);
    }
}

C++ 解法

自动草稿,提交前请检查
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public int MinCostClimbingStairs(vector<int>& cost) {
        int n = cost.size();
        vector<int>& dp = new int[n];
        dp[0] = cost[0];
        dp[1] = cost[1];
        for (int i = 2; i < n; i++) {
            dp[i] = cost[i] + min(dp[i - 1], dp[i - 2]);
        }
        return min(dp[n - 1], dp[n - 2]);
    }
}

Java 解法

匹配/原始
public class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int[] dp = new int[n];
        dp[0] = cost[0];
        dp[1] = cost[1];
        for (int i = 2; i < n; i++) {
            dp[i] = cost[i] + Math.min(dp[i - 1], dp[i - 2]);
        }
        return Math.min(dp[n - 1], dp[n - 2]);
    }
}

JavaScript 解法

匹配/原始
var minCostClimbingStairs = function(cost) {
    let dp = cost.slice();
    for (let i = 2; i < cost.length; i++) {
        dp[i] += Math.min(dp[i - 1], dp[i - 2]);
    }
    return Math.min(dp[cost.length - 1], dp[cost.length - 2]);
};

Go 解法

匹配/原始
package main

func minCostClimbingStairs(cost []int) int {
    n := len(cost)
    dp := make([]int, n)
    copy(dp, cost)
    for i := 2; i < n; i++ {
        dp[i] += min(dp[i-1], dp[i-2])
    }
    return min(dp[n-1], dp[n-2])
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}

Algorithm

find maximum element в 数组е и его индекс.

Проверьте, является ли этот maximum element по крайней мере в два раза больше всех остальных elementов 数组а.

Если 题意 выполняется, return индекс максимального elementа, иначе return -1.

😎

Vacancies for this task

活跃职位 with overlapping task tags are 已显示.

所有职位
目前还没有活跃职位。