好久没有刷LeetCode了,准备重拾并坚持下去,每天刷个两小时.今天算是开始的第一天,不过出师不利,在一道很简单的题目上墨迹半天.不过还好,现在踩过的坑,应该都不会白踩,这些可能都是以后程序员路上稳固的基石哦.任何优秀的程序员不都是这样过来的嘛,坚持就好. 注意:大家练习时同样要注意代码的风格,这一点推荐上lintcode测试一下,练习几次风格自然就好了. 下面开始写第一题的解题过程(包括写错的过程) 思路一:累加数组 1. 求出数组的累加数组(循环遍历,每一项等于前一项的和)2. k个数的和…
package com.hzins.suanfa; import java.util.HashMap; public class demo { /** * 数组中累加和为k的最大子数组的长度 * @param arr * @param k * @return */ public static int maxLengh(int[] arr,int k){ if(arr == null || arr.length == 0){ return 0; } HashMap<Integer, Integer…
974. 和可被 K 整除的子数组 知识点:数组:前缀和: 题目描述 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续.非空)子数组的数目. 示例 输入:A = [4,5,0,-2,-3,1], K = 5 输出:7 解释: 有 7 个子数组满足其元素之和可被 K = 5 整除: [4, 5, 0, -2, -3, 1], [5], [5, 0], [5, 0, -2, -3], [0], [0, -2, -3], [-2, -3]. 解法一:前缀和 连续子数组,又带有和-->前缀和…
862. 和至少为 K 的最短子数组 知识点:单调:队列:前缀和 题目描述 返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K . 如果没有和至少为 K 的非空子数组,返回 -1 . 示例 输入:A = [1], K = 1 输出:1 输入:A = [1,2], K = 4 输出:-1 输入:A = [2,-1,2], K = 3 输出:3 解法一:单调队列+前缀和 这个题目是求连续子数组,所以自然可以想到前缀和,也就是用一个数组统计到第i个位置的前缀和.所以问题就变成了 j>i &am…
问题描述: 给定一个无序数组arr,其中元素可正.可负.可0,给定一个整数 k.求arr所有的子数组中累加和小于或等于k的最长子数组长度.例如:arr=[3,-2,-4,0,6],k=-2,相加和小于或等于-2的最长子数组为{3,-2,-4,0},所以结果返回4. 代码如下: int getLessIndex(int arr[], int len, int num) { ; ; ; ; while(low <= high) { mid = (low + high) / ; if(arr[mid]…
[抄题]: 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:…
1.        push:最后一位新增://改变原数组         arr.push("123");         返回值是数组的长度:         var b = [1, 2, 3, 4]             console.log("没改变之前的数组长度" + b.length);             //4             var n = b.push(123);             console.log(n);      …
今天我们一起来看一下关于最大子数组的一些问题.最大子数组的应用场景可以是这样的:有一天,你搞了一场投资开始炒股,这时你就会想,我怎样才能获得最大的利润呢,最简单的想法就是我在股票的最低价时买入,然后在最高价时卖出,这样利润必然最大.但冷静下来想想这往往是不可能的,你不能保证最高价出现在最低价后面.为了达到这一目的,我们建立了最大子数组模型.我们以一年为时间期限,每个月的股价假设是这样的13 12 15 18 19 18 20 16 13 9 11 10,为了获得最大利益,我们要寻找差值最大的两个…
//石家庄铁道大学 信1405-1 班 唐炳辉 在上一次作业中,对于普通数组的最大子数组的求解问题的基础上,将普通的数组变成一个首尾相接的环,求这个环的最大子数组.类似的,只要改变普通数组的数组位置,在依次进行求解就行了 ...例如 给定你一个数组   -1  2  -5  6  7    让你求这个环的 最大 子数组,,可以用下边这个函数来实现转化,,具体转化完,就生成五个新的数组,分别问 -1 2 -5 6 7 2 -5 6 7 -1 -5 6 7 -1 2 6 7 -1 2 -5 7 -1…
题目描述: 给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是相连的.数组中一个或多个连续元素可以组成一个子数组,其中存在这样的子数组arr[i],…arr[n-1],arr[0],…,arr[j],现在请你这个ACM_Lover用一个最高效的方法帮忙找出所有连续子数组和的最大值(如果数组中的元素全部为负数,则最大和为0,即一个也没有选). 输入: 输入包含多个测试用例,每个测试用例共有两行,第一行是一个整数n(1=<n<=100000),表示数组的…