From a854f1c12d174d3d52e26649f9ca39112c9b6ae4 Mon Sep 17 00:00:00 2001 From: zeekling Date: Sun, 28 Feb 2021 23:16:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E5=AE=9A=E4=B8=80=E4=B8=AA=E6=95=B4?= =?UTF-8?q?=E6=95=B0=E6=95=B0=E7=BB=84=20nums=20=EF=BC=8C=E6=89=BE?= =?UTF-8?q?=E5=88=B0=E4=B8=80=E4=B8=AA=E5=85=B7=E6=9C=89=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E5=92=8C=E7=9A=84=E8=BF=9E=E7=BB=AD=E5=AD=90=E6=95=B0=E7=BB=84?= =?UTF-8?q?=EF=BC=88=E5=AD=90=E6=95=B0=E7=BB=84=E6=9C=80=E5=B0=91=E5=8C=85?= =?UTF-8?q?=E5=90=AB=E4=B8=80=E4=B8=AA=E5=85=83=E7=B4=A0=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=85=B6=E6=9C=80=E5=A4=A7=E5=92=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/leetcode/huawei/MaxSubArray.java | 33 ++++++++++++++++++ .../huawei/MinCostClimbingStairs.java | 34 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/main/java/com/leetcode/huawei/MaxSubArray.java create mode 100644 src/main/java/com/leetcode/huawei/MinCostClimbingStairs.java diff --git a/src/main/java/com/leetcode/huawei/MaxSubArray.java b/src/main/java/com/leetcode/huawei/MaxSubArray.java new file mode 100644 index 0000000..28af6d8 --- /dev/null +++ b/src/main/java/com/leetcode/huawei/MaxSubArray.java @@ -0,0 +1,33 @@ +package com.leetcode.huawei; + +/** + * 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 + * + * https://leetcode-cn.com/problems/maximum-subarray/ + */ +public class MaxSubArray { + + + public int maxSubArray(int[] nums) { + int res = nums[0]; + int sum = 0; + for (int num : nums) { + if (sum > 0) + sum += num; + else + sum = num; + res = Math.max(res, sum); + } + return res; + } + + + + public static void main(String[] args) { + MaxSubArray maArray = new MaxSubArray(); + int[] arr = {-2,1,-3,4,-1,2,1,-5,4}; + int result = maArray.maxSubArray(arr); + System.out.println(result); + } + +} diff --git a/src/main/java/com/leetcode/huawei/MinCostClimbingStairs.java b/src/main/java/com/leetcode/huawei/MinCostClimbingStairs.java new file mode 100644 index 0000000..c2e0cae --- /dev/null +++ b/src/main/java/com/leetcode/huawei/MinCostClimbingStairs.java @@ -0,0 +1,34 @@ +package com.leetcode.huawei; +/** + * + 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。 +每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。 +请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。 +示例 1: + +输入:cost = [10, 15, 20] +输出:15 +解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。 + 示例 2: + +输入:cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1] +输出:6 +解释:最低花费方式是从 cost[0] 开始,逐个经过那些 1 ,跳过 cost[3] ,一共花费 6 。 + +来源:力扣(LeetCode) +链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs +著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 + * + */ +public class MinCostClimbingStairs { + + public int minCostClimbingStairs(int[] cost) { + + return 0; + } + + + public static void main(String[] args) { + + } +}