zoukankan      html  css  js  c++  java
  • LeetCode-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官网。

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

    解法一:累加

    首先,给NumArray声明一个int数组型成员变量nums,在构造方法中初始化nums。sumRange这个方法的实现就是数组的left~right位置的元素值相加,然后返回。

    package com.kaesar.leetcode;
    
    public class LeetCode_303 {
        public static void main(String[] args) {
            // 测试用例
            NumArray numArray = new NumArray(new int[]{-2, 0, 3, -5, 2, -1});
            System.out.println(numArray.sumRange(0, 2)); // return 1 ((-2) + 0 + 3)
            System.out.println(numArray.sumRange(2, 5)); // return -1 (3 + (-5) + 2 + (-1))
            System.out.println(numArray.sumRange(0, 5)); // return -3 ((-2) + 0 + 3 + (-5) + 2 + (-1))
        }
    }
    
    class NumArray {
    
        private int[] nums;
    
        public NumArray(int[] nums) {
            this.nums = nums;
        }
    
        public int sumRange(int left, int right) {
            int result = 0;
            for (int i = left; i <= right; i++) {
                result += nums[i];
            }
            return result;
        }
    
    

    【每日寄语】 洗去夜的疲惫,刷走昨日劳累,在晨曦中抖擞精神,在阳光下放飞心情,把未知的事面对,勇敢无畏;让快乐的心相随,轻松明媚。

  • 相关阅读:
    缩略图生成算法
    页面间传值方法
    net开源cms系统
    海量图片的分布式存储及负载均衡研究(浅析)
    c# 序列化
    net 3.5平台上的Socket开发
    详细讲解jquery带进度上传插件Uploadify(ASP.NET版本)使用
    Linux命令小记
    Trunc(dtpPurDate.DateTime)可以将时间取到天。
    CentOS VNC配置(转)
  • 原文地址:https://www.cnblogs.com/kaesar/p/15291685.html
Copyright © 2011-2022 走看看