本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

【LeetCode】LC1408:一维数组的动态和

发布于2021-03-13 13:45     阅读(976)     评论(0)     点赞(6)     收藏(2)


算法思想

  • 在示例中可以观察到,最后返回的结果,第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),不需要额外数组,在原数组基础上解决

原文链接:https://blog.csdn.net/xt199711/article/details/114678001



所属网站分类: 技术文章 > 博客

作者:木得事

链接:http://www.javaheidong.com/blog/article/114164/0802f038b847b867f342/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)