zoukankan      html  css  js  c++  java
  • LeetCode 刷题记录0615

    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 <= nums.length <= 1000
    -10^6 <= nums[i] <= 10^6

    思路:动态规划,状态转移:ans[i] = ans[i - 1] + nums[i];

    class Solution {
            public int[] runningSum(int[] nums) {
            int[] arr = new int[nums.length];
            for(int i = 0; i < nums.length; i++){
                arr[i] = i == 0 ? nums[i] : arr[i - 1] + nums[i];
            }
            return arr;
        }
    }

    面试题58 - II. 左旋转字符串

    字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

    示例 1:

    输入: s = "abcdefg", k = 2
    输出: "cdefgab"

    示例 2:

    输入: s = "lrloseumgh", k = 6
    输出: "umghlrlose"

    限制:

    1 <= k < s.length <= 10000

    解题思路:直接用分片的方式来解决,时间空间复杂度都是最低的。

    class Solution {
        public String reverseLeftWords(String s, int n) {
            return s.substring(n, s.length()) + s.substring(0, n);
        }
    }
  • 相关阅读:
    逝华
    数论知识
    #10081. 「一本通 3.2 练习 7」道路和航线 题解
    Tire 字典树
    Manacher算法
    时间变奏曲
    【算法】莫队
    【算法】深度优先搜索(dfs)
    【算法】数位 dp
    【笔记】关于位运算(2)
  • 原文地址:https://www.cnblogs.com/koenigsea/p/13131706.html
Copyright © 2011-2022 走看看