zoukankan      html  css  js  c++  java
  • 1480. 一维数组的动态和

    难度:简单
     
     
    题目描述:
     
    给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。
     
    请返回 nums 的动态和。

    示例
     
    示例 1:
    输入:nums = [1,2,3,4]
    输出:[1,3,6,10]
    解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。
     
    示例 2:
    输入:nums = [1,1,1,1,1]
    输出:[1,2,3,4,5]
    解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。
     
    示例 3:
    输入:nums = [3,1,2,10,1]
    输出:[3,4,6,16,17]
     

    解题思路:
     
    方法一:
                1.定义一个int型sum来计算原nums数组对应位置的和
                2.定义一个int型数组res(res数组长度与nums数字长度相同)来保存sum的值
                3.返回res数组
    方法一:
                用res[i-1]来保存nums[]中前i-1个数的和

    代码:
     
    方法一:
     
     1 class Solution {
     2     public int[] runningSum(int[] nums) {
     3         int sum = 0 ;
     4         int length = nums.length;
     5         int [] res = new int[length];
     6         for(int i = 0;i < length;i++){
     7             sum = sum + nums[i];
     8             res[i] = sum;
     9         }
    10         return res;
    11     }
    12 }
    View Code
    方法二:
     1 class Solution {
     2     public int[] runningSum(int[] nums) {
     3         int [] res = new int[nums.length];
     4         res[0] = nums[0];
     5         for(int i = 1;i < nums.length;i++){
     6             res[i] = res[i-1] + nums[i];
     7         }
     8         return  res;
     9     }
    10 }
    View Code
     

    补充知识:
     
    数组的初始化:
    动态初始化 数组类型 [] 数组名称 = new 数组类型 [数组长度];
    int [] res = new int [nums.length];
    动态初始化(分步模式) 数组类型[] 数组名称 = null;
    数组名称 = new 数组类型 [数组长度];

    int [] res = null;
    res = new int [nums.length];
    静态初始化(简化格式) 数据类型 数组名称 = {值, 值,…}
    int res = {1,2,3,4,5};
    静态初始化(完整格式) 数据类型 数组名称 = new 数据类型[] {值, 值,…}
    int res = new int [] {1,2,3,4,5};
     
    数组引用传递:
     
    数组属于引用数据类型,那么也一定可以发生引用传递。
     
    范例1:
    1 public class ArrayDemo {
    2     public static void main(String args[]) {
    3         int data[] = null;
    4         data = new int[3]; //开辟一个长度为3的数组
    5         data[0] = 10;
    6         data[1] = 20;
    7         data[2] = 30;
    8     }
    9 }
    新建数组变量
    那么既然说到了引用数据类型了,就一定可以发生引用传递,而现在的引用传递的本质也一定是:
    同一块堆内存空间可以被不同的栈内存所指向。
     
    范例2:
     
    1 public class ArrayDemo {
    2     public static void main(String args[]) {
    3         int data[] = null;
    4         data = new int[3]; //开辟一个长度为3的数组
    5         data[0] = 10;
    6         data[1] = 20;
    7         data[2] = 30;
    8     }
    9 }

  • 相关阅读:
    DiskCatalogMaker for Mac常见问题解答
    macOS应用程序如果在打开时提示崩溃,该怎么解决
    使用Marmoset Hexels for Mac如何创建一个图库
    Redis Desktop Manager for Mac怎样在连接树中搜索
    java学习笔记IO之File类
    java学习笔记之集合家族2
    mongoDB之数据类型
    mongoDB之集合操作
    mongoDB之数据库操作
    Bootstrap 网格系统
  • 原文地址:https://www.cnblogs.com/fenixG/p/13195326.html
Copyright © 2011-2022 走看看