一、题目 给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。 你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。 示例 1: 输入: [1, 2, 2, 3, 1] 输出: 2 解释: 输入数组的度是2,因为元素1和2的出现频 ...
分类:
编程语言 时间:
2020-10-22 23:10:54
阅读次数:
28
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。 样例1: 输入:[?2,2,?3,4,?1,2,1,?5,3] 输出:6 解释:符合要求的子数组为[4,?1,2,1],其最大和为 6。 样例2: 输入:[1,2,3,4] 输出:10 解释:符合要求的子数组为[1,2,3,4],其最大和 ...
分类:
编程语言 时间:
2020-09-18 02:19:04
阅读次数:
34
作者: Turbo时间限制: 1S章节: 哈希表 晚于: 2020-08-19 12:00:00后提交分数乘系数50% 截止日期: 2020-08-26 12:00:00 问题描述 : 给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums ...
分类:
编程语言 时间:
2020-09-17 20:45:03
阅读次数:
23
问题 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 代码 贪心算法 核心思想就是检查之前 i-1 的元素和,如果小于零就舍弃——对应下面第六行代码 1 class Solution { 2 public: 3 int maxSubArray( ...
分类:
其他好文 时间:
2020-09-17 14:20:44
阅读次数:
24
解题思路: 排序数组中的搜索问题,首先可以想到二分法解决。 根据题意,数组可以按照下面的规则进行划分为两部分。 左子数组:nums[i]=i; 右子数组:nums[i]!=i; 缺失的数字等于“右子数组的首位元素”对应的索引;因此考虑使用二分法查找“由子数组的首位元素”。 1 int missing ...
分类:
其他好文 时间:
2020-09-17 13:50:32
阅读次数:
32
题目描述 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 算法描述 使用动态规划,对于输入的数组nums[],定义数组dp[nums.length],并且dp[i]表示以num[i]为结尾的子数组的和的最大值,则状态转移方程为 * 如果dp[i-1]<=0,那 ...
分类:
编程语言 时间:
2020-09-11 15:57:45
阅读次数:
40
JAVA: public final int maxNonOverlapping(int[] nums, int target) { int re = 0; int point = 0; while (point < nums.length) { int sum = 0; Set<Integer> ...
分类:
编程语言 时间:
2020-09-03 17:04:17
阅读次数:
49
给定一个长度为n的数组a,它有n(n+1)/2??个子数组。请计算这些子数组的和,然后按照升序排列,并返回排序后第k个数。 1≤n≤10?^5 1≤a?i≤10^?9 1≤k≤?n(n+1)/2 在线评测地址:点击此处前往 Example1 Input: [2,3,1,4] 6 Output:5 E ...
分类:
编程语言 时间:
2020-08-10 11:03:25
阅读次数:
93
剑指Offer中的动态规划除了一题hard(正则表达式匹配)都比较简单。 连续子数组的最大和 这道题可以作为线性dp的模板。 用dp[i]表示以元素nums[i]为结尾的连续子数组最大和。 当以nums[i-1]为结尾的数组和(dp[i-1])大于0,对于以nums[i]为结尾的子数组(dp[i]) ...
分类:
其他好文 时间:
2020-07-31 22:58:15
阅读次数:
102
题意: 多组输入,给定a,b两个数组,长度分别为n,m。每个元素有两个值:wi,vi,要求从两个数组中分别选出一个子数组,使得两个子数组的wi和相同,并使总的vi之和最大。 数据范围:n,m<=1e3,wi<=1e3,vi<=1e9,\(\sum(n+m)<=1e4\) 解法: 很容易想到分别对两个 ...
分类:
其他好文 时间:
2020-07-31 18:01:31
阅读次数:
115