当前位置: 首页 > news >正文

算法刷题-数组系列-卡码网.区间和

题目描述

给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。

示例:
输入:

5
1
2
3
4
5
0 1
1 3

输出:
3
9

要点

本题目以ACM的形式输入输出,与力扣的形式不一样,考察头文件的书写、数据结构的书写、主函数的书写等。

暴力解法(会超时)

直接输入数组然后遍历for一头一尾相加就行

前缀和

当多次查询重复区间的时候,采用前缀和,再创建一个数组,保存包含当前值及所有前面索引数组值的和,查询得时候直接arr[target_end]-arr[target_start-1]。避免每次都要for计算头到尾的进而优化代码。

代码

前缀和

int main(){
    
    int length = 0;
    int start = 0;
    int end = 0;
    
    cin >> length;
    vector <int> arr(length);
    vector<int> presum(length);
    int presums = 0;
    for(int i = 0; i < length; i++){
        cin >> arr[i];
        presums+=arr[i];
        presum[i] =presums;
    }
    
    while(cin >> start >> end){
        int sum = 0;
        if (start==0) {
            sum = presum[end];
        }
        else{
            sum = presum[end]-presum[start-1];
        }
        cout << sum << endl;
    }
    return 0;
}

暴力解法

//暴力解法,可以但可能会被卡掉
// int main(){
    
//     int length = 0;
//     int start = 0;
//     int end = 0;
    
//     cin >> length;
//     vector <int> arr(length);
//     for(int i = 0; i < length; i++){
//         cin >> arr[i];
//     }
//     while(cin >> start >> end){
//         int sum = 0;
//         for(int i = start;i<=end;i++) sum+=arr[i];
//         cout << sum << endl;
//     }
//     return 0;
// }

相关文章:

  • Maven 中常用的 scope 类型及其解析
  • OPEN CODER : THE OPEN COOKBOOK FOR TOP -TIER CODE LARGE LANGUAGE MODELS
  • udp和tcp的区别
  • 6.深度学习在推荐系统中的应用
  • 学习数据结构(9)栈和队列上
  • RabbitMQ 如何设置限流?
  • 前沿科技改变生活新趋势
  • 掌握 systemd:Linux 服务管理的核心工具
  • C++病毒(^_^|)(2)
  • Android Handler的机制跟源码分析
  • Android 系统面试问题
  • MySQL主从同步+binlog
  • 同为科技智能PDU助力Deepseek人工智能和数据交互的快速发展
  • 【python】简单的flask做页面。一组字母组成的所有单词。这里的输入是一组字母,而输出是所有可能得字母组成的单词列表
  • 21道关于Vue3的面试题及其解析
  • Linux学习笔记18---串口格式化函数移植实验
  • langchain学习笔记之小样本提示词Few-shot Prompt Template
  • 19.3 连接数据库
  • stm32点灯 GPIO的输出模式
  • 开源的轻量级分布式文件系统FastDFS
  • 印度外交秘书:“朱砂行动”不针对军事设施,无意升级事态
  • 华为鸿蒙电脑正式亮相,应用生态系统能否挑战Windows?
  • 陈丹燕:赤龙含珠
  • 国务院安委会办公室印发通知:坚决防范遏制重特大事故发生
  • 外交部介绍中国赞比亚共同举办人工智能能力建设主题活动情况
  • 计划招录2577人,“国考”补录8日开始报名