zoukankan      html  css  js  c++  java
  • 每日一题力扣303 前缀和

    给定一个整数数组  nums,求出数组从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点。

    实现 NumArray 类:

    NumArray(int[] nums) 使用数组 nums 初始化对象
    int sumRange(int i, int j) 返回数组 nums 从索引 i 到 j(i ≤ j)范围内元素的总和,包含 i、j 两点(也就是 sum(nums[i], nums[i + 1], ... , nums[j]))

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/range-sum-query-immutable
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    正解:

    • 时间复杂度:构造函数的时间复杂度是 O(N)O(N), sumRange 函数调用的时间复杂度是 O(1)O(1)
    • 空间复杂度:O(N)O(N)。
    class NumArray:
    
        def __init__(self, nums: List[int]):
            N=len(nums)
            self.presum=[0]*(N+1)#前缀和presum中是存储数组nums左边的和
            for i in range(N):#这里是重点不要弄错了
                self.presum[i+1]=self.presum[i]+nums[i]
        def sumRange(self, i: int, j: int) -> int:
            return self.presum[j+1]-self.presum[i]#得到的是包含i,j在内的和
  • 相关阅读:
    7.29 H5学习笔记
    8.1H5学习笔记
    8.4 H5知识点总结
    8.15 CSS知识点6
    8.12 CSS知识点5
    HTTP协议简析(二)
    php实现二分查找法
    http协议简析(一)
    telnet客户端模拟浏览器发送请求
    导入txt文件到SQL SERVER 2008
  • 原文地址:https://www.cnblogs.com/liuxiangyan/p/14475364.html
Copyright © 2011-2022 走看看