12.21 力扣題目 (一維陣列的動態和)
阿新 • • 發佈:2020-12-22
技術標籤:java
題目
給你一個數組 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,也稱全程變數)。
靜態變數:
方法外部、類的內部定義的變數,加上了關鍵字“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;
}
}