【LeetCode】LC1408:一维数组的动态和
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode】LC1408:一维数组的动态和
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 算法思想
- Java實例代碼&測試代碼
- 算法分析
算法思想
- 在示例中可以觀察到,最后返回的結果,第1個值不用變,第n個值是參數中數組第1到第n個值的和
- 所以,沒有必要新開一個數組,這樣會占用資源,直接在原數組中操作即可
- 只用一次遍歷,要得到第n個值,只需要用第n-1個值加上第n個值即可
Java實例代碼&測試代碼
public class LC1480 {public int[] runningSum(int[] nums) {for (int i = 1; i < nums.length; i++) {nums[i] += nums[i-1];}return nums;}public static void main(String[] args) {int[] nums = {3,1,2,10,1};LC1480 lc1480 = new LC1480();int[] ans = lc1480.runningSum(nums);System.out.print("[");for (int i = 0; i < ans.length; i++) {System.out.print(nums[i]);if(i!=ans.length-1) System.out.print(",");}System.out.println("]");} }算法分析
時間復雜度:O(n),只需要遍歷目標數組
空間復雜度:O(1),不需要額外數組,在原數組基礎上解決
總結
以上是生活随笔為你收集整理的【LeetCode】LC1408:一维数组的动态和的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【程序人生】不想一辈子做底层码农?快来看
- 下一篇: 【LeetCode】LC1672. 最富