数串专题

算法题:数串分组

题意: 给定一串数字,判断是否存在这三个元素,它们将数字串分为四个子串,其中每个子串的数字之和均相同(该3个元素不纳入计算) 。要求时间复杂度和空间复杂度均不能超过O(n)。 思路: 方法1: 用一个大小为n的array[i]存储从开头一直加到num[i]的和值,用一个hashmap存储下array的下标和对应的和值,这样实现O(1)时间复杂度的查找。 先遍历一遍存下array和map。

【Java每日编程题】牛客网编程题:数串排序

题目 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。 如:n=3时,3个整数13,312,343,连成的最大整数为34331213。 如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。 输入描述 有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。 输出描述: 每组

给你N个数,让你求一个连续数串的平均值最大,连续数串的个数不得低于F个

http://poj.org/problem?id=2018 题意很简单,就是给你N个数,让你求一个连续数串的平均值最大,连续数串的个数不得低于F个。 那么就设dp[i],为以第i个数为最后一个数所能得到的最大平均值。那么dp[i]要在两种情形中选择最大值,第一种是基于dp[i-1],把第I个数作为前面串的末尾,第二种情况自己单独起一长度为F的串。 代码如下: #include<iost