首页 > TAG信息列表 > curSum

LeetCode 0053 Maximum Subarray

原题传送门 1. 题目描述 2. Solution 1、思路分析 dynamic programming a> 状态定义,f(i) 以nums[i]结尾的最大连续子序列和 b> 状态转移方程,f(i) = max{f(i - 1) + nums[i] , nums[i]} c> 边界,f(0) = nums[0] 用变量 curSum 替代 f(i - 1),res 替代 f(i) 以降低空间复杂度 2、代码

leetcode53.最大子数组和

这道题我刚开始用暴力法发现很复杂很费劲,就放弃暴力法了。 方法一:贪心算法 1.准备变量:preSum记录上一次和,curSum记录本次和,maxAns记录最大和 2.遍历数组,当上一次计算的和preSum小于0时,另preSum直接等于当前数组元素 3.如果preSum大于等于0,curSum = preSum + 当前元素,并给preS

134. 加油站

描述 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回

连续子数组的最大和

简介 刷题 参考链接 https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=117 核心思想 遍历一遍得到结果 code class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { if(array.size() == 0) { return 0;

leetcode-437. 路径总和 III

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr

LeetCode-112-路径总和

路径总和 题目描述:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。 叶子节点 是指没有子节点的节点。 示例说明请见LeetCode官网。 来源:力扣(LeetCode) 链接:https://leetco

力扣 16题 最接近的三数之和

Question 16-3sum closest 解题思路 解决这道题,想法大致如下: 将一整个数组排序。 假定 3 个数中的其中一个,就位于数组之首,然后,通过双指针法,从数组的其他位置中找到剩下的两个,并计算这 3 个数字之和。 移除数组之首,让数组之首的下一个元素成为新的数组之首,并重复第二步。 复杂度:

leetcode1231 分享巧克力

https://leetcode-cn.com/problems/divide-chocolate/ 将数组分为K+1份。最合理的方式就是均分。 遍历数组,逐渐的累加,当累加的值大于等于arvg,清空当前的累加值,继续进行下一次的累加,并且当前记录为划分一块。当遍历结束,或者还未结束时,记录的划分的块数已经达标。那么当前均值a

363. Max Sum of Rectangle No Larger Than K

问题: 给定二维数组, 求其中子矩形中元素和不大于K 的最大和。 Example 1: Input: matrix = [[1,0,1],[0,-2,3]], k = 2 Output: 2 Explanation: Because the sum of the blue rectangle [[0, 1], [-2, 3]] is 2, and 2 is the max number no larger than k (k = 2). Example 2: I

leecode-842.将数组拆分成斐波那契数列

题目 将数组拆分成斐波那契数列 思路分析 回溯:首先我们用cur来维护当前遍历的位置,用prev来存储进入此次递归时上一次的数值,用sum表示此次的target数值。 注意的点 数据虽然每个在int范围,但是sum可能爆int,因此需要long long来存储。最后存储结果,要判断当前的数组的大小。 代码

1588. Sum of All Odd Length Subarrays

Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value. Example 1: Input: [1,12,-5,-6,50,3], k = 4 Output: 12.75 Explanation: Maximum ave

剑指Offer_#60_n个骰子的点数

剑指Offer_#60_n个骰子的点数剑指offer Contents 题目思路分析可以观察到的规律方法1:递归方法2:动态规划解答解法1:递归解法2:动态规划 题目 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。 你需要用一个浮点数数组返回答案,其中第 i

LeetCode 643. 子数组最大平均数 I

1. 题目 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 示例 1: 输入: [1,12,-5,-6,50,3], k = 4 输出: 12.75 解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75 注意: 1 <= k <= n <= 30,000。 所给数据范围 [-10,000,10,000]。 来源:力扣(Leet

【LeetCode-数组】最大子序和

题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 思路1 贪心法。 记录当前子序列的和curSum; 如果curSum>0,说明curSum对接下来

16. 最接近的三数之和

16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数

剑指offer 连续子数组的最大和

题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如

Educational Codeforces round 78 A、B

链接:https://codeforces.com/contest/1278A:Shuffle Hashing题意:对于一个字符串p可以执行一个”hash”操作,首先将p内的元素随机排列(可能保持原样),随后在p的前面和后面分别加两个字符串(可以为空),组成的新字符串称为h。输入字符串p和h,输出h是否可能是p经过hash操作而来。    例如:

课堂作业--最大连续子数组和

#include "stdio.h" //*****************主函数******************int max(int* str, int len); int main(void){ int str[100] ; int i = 0; int len; while(1) { printf("请输入长度\n"); scanf_s("%d",&len); printf("请输入数组\n"); fo

LeetCode-198.打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷

求解奖学金问题(贪心)

/*问题描述:有n门课(编号为0~n-1),每门课都有考试。为了拿到奖学金,必须满足所有课程平均成绩至少为avg。每门课由平时成绩和考试成绩相加得到,满足为r。现知道每门课平均成绩ai(0<=i<=n-1),若想让这门课多考一分,需要花bi的时间复习。同时,也可能出现复习再多也不会超过满分的分数。为了拿到奖

43.和为S的连续正数序列

题目描述:   小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不

二叉树中和为某一值的路径

一、题目 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始,一直到叶节点所经过的节点形成一条路径。 二、分析 前序遍历,当访问到某一节点后,把节点添加到路径上,并累加该节点的值。如果该节点为叶节点,并且路径中节点值的和刚好等于输入

leetcode974

这道题目描述很清晰,直接两层循环,代码如下: 1 class Solution(object): 2 def subarraysDivByK(self, A: 'List[int]', K: int) -> int: 3 n = len(A) 4 totalnum = 0 5 for i in range(n): 6 cursum = 0 7 for j in range(

连续子数组的最大和

这道题的题目为:输入一个整形数组,数组里有正数也有负数,数组中一个或连续的多个整数组成一个连续子数组。求所有子数组的和最大值,要求时间复杂度为O(n)。 解题思路为: (1)定义一个整形的CurGreatSum来标记子数组的最大和,然后用一个整形的CurSum来存储当前的和。 (2)从头遍历整个数组num

leetcode53

题目: Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [−2,1,−3,4,−1,2,1,−5,4], the contiguous subarray [4,−1,2,1] has the largest sum = 6. click to show more practice