题目
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。
请返回 nums 的动态和。
思路
遍历原数组 新数组第一个元素不变 第二个元素等于原数组的第i个数加新数组的第j-1位数,中间需要判断一次J=0的情况,J=0时J-1会出现下标越界的情况,然后用一个参数接受结果集,然后遍历该数组,输出新数组的元素
遇到的问题
数组的定义三种定义方式:
数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度]
int[] arr = new int[3];
数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[]{数组元素1,数组元素2,数组元素3};
int[] arr = new int[]{1,2,3,4,5};
数组存储的数据类型[] 数组名字 = {数组元素1,数组元素2,数组元素3};
int[] arr = {1,2,3,4,5};
局部变量和全局变量
局部变量:
(1)在一个函数内部定义的变量,它只在本函数范围内有效,也就是说只有在本函数内才能使用它们,在此函数以外是不能使用这些变量的
(2)形参属于局部变量
(3)在函数声明中出现的参数名,其作用范围只在本行的括号内
全局变量:
(1)在函数内定义的变量是局部变量
(2)在函数之外定义的变量是外部变量,称为全局变量(global variable,也称全程变量)。
(3)全局变量的有效范围为从定义变量的位置开始到本源文件结束。
静态变量:
方法外部、类的内部定义的变量,加上了关键字“static”(数据段,长驻内存,虚拟机关闭时消失。)
静态变量可以通过对象和类名访问,成员变量只能通过对象访问。
if语句的格式
//if语句的三种格式
//格式1
if(比较表达式){
语句体;
}
//格式2
if(比较表达式){
语句体1;
}else{
语句体2;
}
//格式3
if(比较表达式1){
语句体1;
}else if(比较表达式2){
语句体2;
}else if(比较表达式3){
语句体3;
}
...
else{
语句体n+1
}
关系运算符
1、==是相等运算符。 如果两个操作数都引用同一个对象,则返回true,否则返回false。
2、!=适用于非等号运算符。 如果两个操作数都引用不同的对象,则返回true,否则返回false。
3、<小于运算符。
4、>大于运算符。
5、<=小于或等于运算符。
6、> =大于或等于运算符。
注意:=是赋值操作 ==才是布尔值判断
代码
public class RunningSum {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4};
int[] result = runningSum(nums);
for (int i = 0; i < result.length; i++) {
System.out.println(result[i]);
}
}
public static int[] runningSum(int[] nums) {
int j = 0;
int[] result = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
if(j == 0){
result[j] = nums[i];
}else {
result[j] = nums[i] + result[j - 1];
}
j++;
}
return result;
}
}