LeetCode 1588. 所有奇数长度子数组的和

Leetcode 1588. 所有奇数长度子数组的和 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。 示例 1: 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,5,3] = 15 我们将所有值求和得到 1 + 4 + 2 + 5 +. 阅读详情

题目链接:LeetCode 1588. 所有奇数长度子数组的和

题意:

给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。

子数组 定义为原数组中的一个连续子序列。

请你返回 arr 中 所有奇数长度子数组的和 。

示例 1:

输入:arr = [1,4,2,5,3]
输出:58
解释:所有奇数长度子数组和它们的和为:
[1] = 1
[4] = 4
[2] = 2
[5] = 5
[3] = 3
[1,4,2] = 7
[4,2,5] = 11
[2,5,3] = 10
[1,4,2,5,3] = 15
我们将所有值求和得到 1 + 4 + 2 + 5 + 3 + 7 + 11 + 10 + 15 = 58

提示:

  • 1 <= arr.length <= 100
  • 1 <= arr[i] <= 1000

解题思路:

  由于数据范围较小,所以直接三个for循环暴力求解是没问题的

class Solution {
public:
    int sumOddLengthSubarrays(vector<int>& arr) {
        int n = arr.size();
        long long ans = 0;
        int k = 1;
        for(int i = 0; k <= n; i++) {
            for(int j = 0; j < n; j++) {
                for(int u = j; j + k <= n && u < j + k; u++) {
                    ans += arr[u];
                }
            }
            k = k + 2;
        }
        return ans;
    }
};

   但是如果数据范围变大 10的6次方 如何做

那当然是计算每个数出现的次数

那么如何计算?

 

对于一个数字,它所在的数组,可以在它前面再选择 0, 1, 2, ... 个数字,一共有 left = i + 1 个选择;

可以在它后面再选择 0, 1, 2, ... 个数字,一共有 right = n - i 个选择。

数字前面共有 left 个选择,其中偶数个数字的选择方案有 left_even = (left + 1) / 2 个,奇数个数字的选择方案有 left_odd = left / 2 个;

数字后面共有 right 个选择,其中偶数个数字的选择方案有 right_even = (right + 1) / 2 个,奇数个数字的选择方案有 right_odd = right / 2 个;

class Solution {
public:
    int sumOddLengthSubarrays(vector<int>& arr) {
		int ans = 0;
		int n = arr.size();
		for(int i = 0; i < n; i++) {
			int l = i + 1;
			int r = n - i;
			int l_odd = l / 2;
			int r_odd = r / 2;
			int l_even = (l + 1) / 2;
			int r_even = (r + 1) / 2;
			ans += arr[i]* (l_odd * r_odd + l_even * r_even);
		}
		return ans;
    }
};
《生化危机9:安魂曲》D加密免BIOS破解方案详解 数字版权管理(DRM)技术通过加密手段保护软件版权,Denuvo(D加密)作为主流方案常应用于3A游戏。其原理是通过实时验证机制阻止未授权访问,但可能影响性能表现。本文以《生化危机9》为例,解析一种免BIOS修改的D加密绕过方案,该方案通过授权启动器模拟正版验证流程,保持系统零侵入性。实测表明,该方法在GTX 1060至RTX 3070等多硬件平台均能稳定运行,支持MOD扩展且兼容Reshade画质增强,为玩家提供开箱即用的绿色版体验。 阅读详情

相关推荐

【WSL2+Ubuntu+Docker Desktop】迁移到D盘

该篇文章包含将WSL2+ubuntu+Docker Desktop从C盘迁移到D盘

哈茶的博客 3930

C练题笔记之:Leetcode-1588. 所有奇数长度子数组的和

题目: 给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr中 所有奇数长度子数组的和 。 示例 1: 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,5,3] = 15 我们将所有值求和得到 1 + ...

lingjinyue的博客 453

QT使用openssl实现RSA加解密

使用openssl生成公私钥,随后用QT对相应的信息进行RSA加解密

weixin_42098322的博客 3867

LeetCode题解(2020-10-26)

继续开始做题,仍然选择简单的题目。经过前几天刷题,虽然归为简单的一类题目,但是实际做起来感觉并不简单,继续努力。 题1:所有奇数长度子数组的和 题目描述 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。 示例 1: 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,

黄钢的博客 3万+

从原理到应用:深入解析双编码器在机器人关节力矩感知中的实现

本文深入解析了双编码器方案在机器人关节力矩感知中的实现原理与应用。该方案通过在电机侧和输出侧分别安装编码器,利用两者位置差异间接高精度计算外力,克服了传统电流环精度不足和扭矩传感器成本高昂的缺点。它为实现协作机器人的丝滑拖动示教、灵敏碰撞检测以及足式机器人的动态平衡与柔顺控制提供了关键技术支撑,是目前高性能机器人力控的主流选择。

t8u9v0w1x的博客 662

FPGA_AD9361实战

1.参考网站。

Pual_Georg的博客 748

给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。   来源:力扣(LeetCod

class Solution { public int sumOddLengthSubarrays(int[] arr) { int sum = 0; for(int i = 1;i<=arr.length;i+=2){ for(int j = 0;j+i<=arr.length;j++){ for(int k = j;k<j+i;k++){ sum+=a

zylscxy的博客 499

kali2020.2安装出现的问题并附详细解决办法

kali2020.2的安装

weixin_48776804的博客 3048

给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。

class Solution { public int sumOddLengthSubarrays(int[] arr) { if (arr == null || arr.length == 0) { return 0; } int count = 1; int res = 0; while (true) { for (int i = 0; i < arr.length; i++) { if (i + count > arr.length) { continue; } res += fun(ar

qq_51339153的博客 1533

人工智能训练师技能等级认定四级技能考核试卷-样题1

本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总分100分,考试时间150分钟。试卷涵盖数据处理、模型训练准备及系统维护等核心技能:1)垃圾分类数据集规范与处理(30分),要求评估数据格式并编写Python处理代码;2)学生成绩数据集分析(20分),涉及数据预处理、可视化及相关性分析;3)数据标注审核(10分),重点审核标注准确性;4)智能数据服务系统维护与优化(40分),包括安全帽数据集的项目创建、数据处理及平台协作。考核强调Python编程、数据处理平台操作及AI工作流程的实践能力。

weixin_42221934的博客 440

#Linux内存管理# 用一个案例详细介绍ARMv7-A架构 缺页中断处理的原理

跳转到异常向量:根据 异常向量表基地址(通常配置在 VBAR 寄存器中,例如 0xFFFF0000) + 数据中止异常的偏移量 0x10,跳转到数据中止异常的处理程序入口点 0xFFFF0010(实践中,这个入口通常是一条跳转到更复杂处理函数的指令)。malloc 通常不会立即分配物理内存页,它只是在内核为该进程维护的虚拟地址空间中找到一段足够大的空闲虚拟地址区域(比如 0x00008000 - 0x00008FFF),标记为已用,并返回起始地址(例如 0x00008000)给程序。

sinat_37817094的博客 993

1588. 所有奇数长度子数组的和

1588. 所有奇数长度子数组的和 题目描述: 给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。 子数组定义为原数组中的一个连续子序列。 请你返回arr中所有奇数长度子数组的和 。 示例 1: 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,5,3] = 15 我们将所有值求和得

勿在浮沙築高台 306

基于大语言模型的多轮对话系统优化研究

基于大语言模型的多轮对话系统优化研究 摘要 本研究针对大语言模型在多轮对话场景中的性能衰减问题,提出了一套系统优化方案。通过分层存储架构(短期记忆层、中期摘要层、长期知识层)和混合检索策略优化上下文管理,设计动态槽位填充框架增强对话状态跟踪,引入熵引导的重置算法改进生成策略,并采用双路径加载架构突破I/O瓶颈。实验表明,该方案使任务完成率提升28.6%,响应一致性提高41.2%,推理延迟降低35.8%,为构建高性能智能对话系统提供了实用技术路径。 关键词:大语言模型;多轮对话;上下文管理;状态跟踪~~~~~

huanghm88的专栏 663

【LeetCode每日一题】——1588.所有奇数长度子数组的和

给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。

IronmanJay 1292

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

力扣Leetcode第1588题,所有奇数长度子数组的和的Python解法

Description 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。 示例 1: 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,5,3] = 15 我们将所有值求和得到 1 +

weixin_43955866的博客 406

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

#力扣 LeetCode1588. 所有奇数长度子数组的和 @FDDLC

题目描述: 1588. 所有奇数长度子数组的和 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution { public int sumOddLengthSubarrays(int[] a) {//len>=1 int ans=0; for(int len=1;len<=a.length;len+=2){ for(int bg=0,ed=a.length-len;.

LiuXingchang的博客 279

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

leetcode1588、所有奇数长度子数组的和(c++)

leetcode158、所有奇数长度子数组的和 难度:简单 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。 子数组 定义为原数组中的一个连续子序列。 请你返回 arr 中 所有奇数长度子数组的和 。 示例1 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,5,3] = 1

weixin_42395736的博客 1307

leetcode1588.所有奇数长度子数组的和

leetcode 1588.所有奇数长度子数组的和

进击的code儿 495

Leetcode—1588.所有奇数长度子数组的和【简单】

运行结果 运行结果 时间复杂度O(n3)O(n^3)O(n3),空间复杂度O(1)O(1)O(1) 时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(1)O(1)O(1) 时间复杂度O(n2)O(n^2)O(n2),空间复杂度O(n)O(n)O(n) 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 512

leetcode 1588. 所有奇数长度子数组的和--Java、Python以及Scala语言的实现

问题描述 给你一个正整数数组arr ,请你计算所有可能的奇数长度子数组的和。子数组定义为原数组中的一个连续子序列。请你返回arr中所有奇数长度子数组的和 。 输入:arr = [1,4,2,5,3] 输出:58 解题思路 首先循环遍历数组arr的可能长度i(i为奇数),接着在循环遍历数组arr中的每一个元素下标j,求和j到(i+j)的元素(不包含(i+j),并且(i+j)<=arr.length)。 Java 代码 public int sumOddLengthSubarrays(in

xiekengli8279的博客 523

LeetCode_1588_所有奇数长度子数组的和

题目链接 https://leetcode-cn.com/problems/sum-of-all-odd-length-subarrays/ 解题思路 核心在于计算每个元素会出现的次数,然后乘以其值,求和就可以得到结果 对于一个如下图所示,有N个元素的数组,以索引i的元素为界,可以把子序列分为A[0 : i - 1]、A[i]、A[i + 1: n - 1]这三个部分中 显然,一个包含A[i]的奇数长度的连续子序列只会有两种情况 左边和右边的子序列长度均为奇数个 左边和右边的子序列长度均

Fitz的博客 458

每日一题——LeetCode1588.所有奇数长度子数组的和

比如对于[1,4,2,5,3] ,对于第一个元素1,有[1]、[1,4,2]、[1,4,2,5,3]这三种可能,对于第二个元素4,有[4]、[4,2,5]这两种可能,以此类推,反复累加最后得到sum。数组中每个元素都会在不同长度的奇数子数组中出现一次或多次,只要计算出每个元素在多少个长度为奇数的子数组中出现,就能得到所有奇数长度子数组的和。构造前缀和数组prefixSums,数组每一项prefixSums[i]保存的是数组arr从下标0到下标i-1的元素和。

weixin_52878347的博客 912

python-leetcode-1588. 所有奇数长度子数组的和

问题解析:要找出数组arr中所有的,并计算它们的和,最后返回所有这些和的总和。

Lucy_wzw的博客 331

【Leetcode刷题】 1588 所有奇数长度子数组的和

【题目描述】 给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。 示例: 输入:arr = [1,4,2,5,3] 输出:58 解释:所有奇数长度子数组和它们的和为: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,5,3] = 15 我们将所有值求和得到 1 + 4 + 2 +

weixin_45615071的博客 396

LeetCode 1588题解:奇数长度子数组和的优化计算

数组操作是算法中的基础问题,其中子数组求和是常见场景。通过分析元素出现次数的数学规律,可以将O(n³)暴力解法优化为O(n)的高效解法。这种优化思路在信号处理、时间序列分析等工程场景中有广泛应用。本文以LeetCode 1588题为例,详细讲解如何利用数学推导实现算法优化,并比较了暴力解法和优化解法的性能差异。掌握这类数组处理技巧,能显著提升解决算法问题的效率。

weixin_29722783的博客 295

力扣1588所有奇数长度子数组的和

力扣1588所有奇数长度子数组的和

qq_46780256的博客 667
上一篇: vscode 编译运行C++
下一篇: LeetCode 1589. 所有排列中的最大和
error0318
博客等级 码龄9年 57粉丝 515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值