21点游戏2026中国最新手机版app下载 2026-06-06: 统计主导元素下标数。用go言语, 给定一个整数数组 nu

21点游戏2026中国最新手机版app下载 2026-06-06: 统计主导元素下标数。用go言语, 给定一个整数数组 nu

2026-06-06:统计主导元素下标数。用go言语,给定一个整数数组 nums,长度为 n。咱们称某个位置 i(频繁只琢磨 i

你的主见是统计数组中称心上述条目的位置数目,并输出该数目(最右端下标 n-1 对应的元素不参与判断)。

1

1

输入: nums = [5,4,3]。

输出: 2。

诠释:

不才标 i = 0 处,值 5 是主导元素,因为 5 > average(4, 3) = 3.5。

不才标 i = 1 处,值 4 是主导元素,联系于子数组 [3]。

下标 i = 2 不是主导元素,龙虎斗2026世界杯官方最新网址因为它右侧莫得元素。因此谜底是 2。

题目来独力扣3833。

1. 代码逻辑迟缓践诺

启动:

• n = 3

• ans = 0

• sufSum = 0(用来累加后缀和,即 i+1 到末尾的和)

轮回 i = n-2 = 1向下到 0:

第一轮 i = 1:

• 先作念 sufSum += nums[i+1]

sufSum = 0 + nums[2] = 0 + 3 = 3

• 后缀长度 len = n-1-i = 3-1-1 = 1

• 查验 nums[1] * len > sufSum?

第二轮 i = 0:

• 先作念 sufSum += nums[i+1]

sufSum = 3 + nums[1] = 3 + 4 = 7

• 后缀长度 len = n-1-i = 3-1-0 = 2

• 查验 nums[0] * len > sufSum?

轮回截止,21点游戏2026最新手机版app下载安装复返 ans = 2。

2. 算法中枢重点

• 从右往左遍历,用一个变量 sufSum 累加面前 i 右边的所有元素和。

• 每次轮回来源先加上 nums[i+1](对 i 来说即是它右侧紧邻的元素,但 sufSum 本色是 i 右边全的和)。

• 这么只需要 O(1) 的稀奇变量,毋庸每次再行筹画后缀和。

• 相比时用乘法幸免浮点数运算。

3. 时代复杂度

• 轮回 n-1 次(从 n-2 到 0),每次轮回 O(1) 操作。

• 总时代复杂度 O(n)。

4. 空间复杂度

• 除了输入数组,只用了 n, ans, sufSum 几个变量。

• 总数外空间复杂度 O(1)。

Go完好代码如下:

package main

import (

"fmt"

)

func dominantIndices(nums []int) (ans int) {

n := len(nums)

sufSum := 0

for i := n - 2; i >= 0; i-- {

sufSum += nums[i+1]

if nums[i]*(n-1-i) > sufSum {

明陞M88体育中国官网

ans++

}

}

return

}

func main {

nums := []int{5, 4, 3}

result := dominantIndices(nums)

fmt.Println(result)

}

Python完好代码如下:

# -*-coding:utf-8-*-

def dominant_indices(nums):

n = len(nums)

ans = 0

suf_sum = 0

for i in range(n - 2, -1, -1):

suf_sum += nums[i + 1]

if nums[i] * (n - 1 - i) > suf_sum:

ans += 1

return ans

if __name__ == "__main__":

nums = [5, 4, 3]

result = dominant_indices(nums)

print(result)

C++完好代码如下:

#include

#include

using namespace std;

int dominantIndices(vector& nums) {

int n = nums.size;

int ans = 0;

int sufSum = 0;

for (int i = n - 2; i >= 0; i--) {

sufSum += nums[i + 1];

if (nums[i] * (n - 1 - i) > sufSum) {

ans++;

}

}

return ans;

}

int main {

vector nums = {5, 4, 3};

int result = dominantIndices(nums);

cout

return0;

}

咱们驯顺东说念主工智能为无为东说念主提供了一种“增强器具”,并悉力于共享全标的的AI常识。在这里,您不错找到最新的AI科普著述、器具评测、提高后果的隐秘以及行业知悉。

迎接热心“福大大架构师逐日一题”,发音信可获取口试贵寓21点游戏2026中国最新手机版app下载,让AI助力您的翌日发展。