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 }

 

 

 

 

posted @ 2020-06-26 16:16  FenixG  阅读(512)  评论(0编辑  收藏  举报