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;
        }
    
    

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

  • 相关阅读:
    Access Token 机制详解
    Authorization Code 授权原理和实现方法
    Access Token 与 Refresh Token
    简单介绍 Oauth2.0 原理
    进行web开发时应该考虑的架构性因素
    查看linux服务器CPU数量
    Centos7 修改主机名
    Centos6 编译安装Python3.6
    Linux编译安装软件常见问题及排查
    问题列表
  • 原文地址:https://www.cnblogs.com/kaesar/p/15291685.html
Copyright © 2011-2022 走看看