求连续一段相同的数

SQL 最大连续 在零售行业,会有一种负毛利的现象,就是商品的售价要低于进价,虽说出现负毛利不代表一定亏损(还要看销售返利),但是如果某商品连续几个月都出现了负毛利的情况则需要引起重视,可能是因为采购价格过高造成的因素。 所以有必要计算出现连续负毛利的商品,并且查看下出现负毛利的最大连续是多少。 阅读详情

第1题     count 查看测评数据信息
输入n个数,n<=500000,每个数不超过10000,求最多连续出现了多少个相同的数。

输入/输出例子1
输入:

10 

5 5 3 3 3 4 5 6 7 8

输出:

3

样例解释

#include<bits/stdc++.h>
using namespace std;
int n,a[500005],maxx=0,s=1,t;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    a[n+1]=a[n]+1;
    for(int i=1;i<=n;i++)
    {
        if(a[i]==a[i+1])
        {
            s++;            
        }     
        else 
        {
            if(s>maxx)maxx=s;
            s=1;
        }      
    }
    cout<<maxx;
    return 0;
}

第1题     USAICO 查看测评数据信息
FJ的农场举行了异一场USA奶牛奥林匹克竞赛.N(1 <= N <= 100,000; N 是一个奇数)只奶牛都已经获得了一个整数分数S(0 <= S <= 10,000).

FJ必须统计这些分数以便指导他们.帮帮他吧~~给出一个列表,计算最小值、最大值、中间数、众数。中间值是一个值M,至少一半的数<=M,至少一半的数>=M。众数是指出现次数最多的一个数。FJ知道分数里面只有一个众数。

输入格式
第1行:一个整数N。

第2..N+1行:每一行有一个整数,是一只奶牛的分数

输出格式
四个用空格隔开的整数:最小值、最大值、中间数、众数

输入/输出例子1
输入:

9

1

3

15

3

5

6

7

8

3

输出:

1 15 5 3

样例解释
9只奶牛的分数,在1到15之间,最小值是 1;最大值是 15;中间值是 5;众数是 3,出现了3次

#include<bits/stdc++.h>
using namespace std;
int n,a[100005],maxx=0,s=1,maxi=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    cout<<a[1]<<" "<<a[n]<<" "<<a[n/2+1]<<" ";
    a[n+1]=a[n]+1;
    for(int i=1;i<=n;i++)
    {
        if(a[i]==a[i+1]) s++;                
        else 
        {  
            if(s>maxx) maxx=s,maxi=a[i];
            s=1;
        }      
    }
    cout<<maxi;
    return 0;
}

第2题     房间数量 查看测评数据信息
有n头奶牛,第i头奶牛的身高是h[i]。身高相同的所有奶牛都住在同一个房间。问需要多少个房间才能安排好所有奶牛的住宿。

输入格式
接下来有n行,第i行是一个正整数h[i]。

60%的数据: 1 <= n <= 1000, 1 <= h[i] <= 1000000。 

80%的数据:1 <= n <= 100000, 1 <= h[i] <= 1000000。 

100%的数据:1 <= n <= 100000, 1 <= h[i] <= 2000000000。 

输出格式
一个整数。 

输入/输出例子1
输入:

10 30 10 20 30 

输出:

#include<bits/stdc++.h>
using namespace std;
int n,a[100005],s=0;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    a[n+1]=a[n]+1;
    for(int i=1;i<=n;i++)
    {
        if(a[i]!=a[i+1]) s++;
    }
    cout<<s;
    return 0;
}

第3题     火柴 查看测评数据信息
     有N根火柴,第i根火柴的长度是Li。小明很喜欢正方形,所以小明希望用这些火柴拼出尽量多的正方形,但要同时满足如下条件:

1、一根火柴最多只能用在一个正方形中。

2、组成正方形的四根火柴,长度必须都相同。

给出N根火柴的长度,你的任务是计算:最多可以拼出多少个正方形?

输入格式
第一行,一个整数N。  

 第二行,N个整数,第i个整数是Li。

 对于60%的数据, 4 <= N <= 50, 1 <= Li <= 1000。

 对于100的数据,4 <= N <= 5000,1 <= Li <= 1000000000。

输出格式
一个整数,表示最多能拼出的正方形的数量      

输入/输出例子1
输入:

7

1  1  2  2  1  1  2 

输出:

1

输入/输出例子2
输入:

20

1  2  3  4  1  2  3  4  1  2  3  1  2  3  4  1  2  3  3  3 

输出:

3

#include<bits/stdc++.h>
using namespace std;
int n,a[5005],maxx=0,s=1;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    sort(a+1,a+n+1);
    a[n+1]=a[n]+1;
    for(int i=1;i<=n;i++)
    {
        if(a[i]==a[i+1])
        {
            s++;            
        }     
        else 
        {
            maxx=maxx+s/4; 
            s=1;
        }      
    }
    cout<<maxx;
    return 0;
}

第4题     众数 查看测评数据信息
小明最近在上数学课,老师给小明布置了个作业:在 n个数里找出所有的众数。 

众数的定义是这样的:在所有数当中出现次数最多的数被称为众数。并且根据定义,众 数有可能有多个。 

你能解决这个问题吗? 

输入格式
第一行一个整数n。 

第二行有n个整数,ai表示第i个数。 

40%的数据,1<=n<=400 

100%的数据,1<=n<=1000000,1<=ai<=1000000000

输出格式
输出一行,包括一个整数k,表示众数的个数。 

接下来一行包括k 个整数,每个整数都表示一个众数,并且从小到大输出。 

输入/输出例子1
输入:

10 

3 3 3 2 3 1 2 2 1 2 

输出:

2 3 

#include<bits/stdc++.h>
using namespace std;
map<int,int>person;
int M[1000000];
int t;
int main(){
    int n,id=0,Max=-100;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int s;
        cin>>s;
        person[s]++;
    }
    map<int,int>::iterator it;
    for(it=person.begin();it!=person.end();it++)
    {
        if(it->second>Max)
        {
            Max=it->second;
        }
    }
    for(it=person.begin();it!=person.end();it++)
    {
        if(it->second==Max)
        {
            id++;
        }
    }
    cout<<id<<endl;
    for(it=person.begin();it!=person.end();it++)
    {
        if(it->second==Max)
        {
            cout<<it->first<<" ";
        }
    }
    return 0;
}

第1题     序列问题二 查看测评数据信息
作为信息学高手,桐桐和晶晶数学也相当厉害,他们非常喜欢研究数列。一次桐桐写下一个数列,是 N 个不相同的正整数。晶晶想把它们重新排列,使整列满足条件:除第一个和最后一个数外,每个数都比它相邻的左右两个数小 或 比它相邻的左右两个数大。

当然可能满足上面的条件的方案有多种,你要输出“字典序最小”的一个。对于两个数列A和B,从第一项开始一个一个比较,出现第1次不同的项时,此项小的数列为字典序小些。  

输入格式
第一行:一个整数 N ( N<= 100 ),表示数列有N个整数。

第二行:N个不同的正整数,每个整数在 [ 1 , 1,000,000,000 ] 范围内。

输出格式
只一行,有N个整数,晶晶变化后的数列。

输入/输出例子1
输入:

1  5  10  4  

输出:

1 5 4 10

这题我不会,哪位大佬帮我?

感谢感谢!

聪明人的游戏提高篇:第二课例题:桐桐的学难题(fen) 阅读详情

相关推荐

80、第2课 桐桐的学难题(fen)(2020.02.19)a.pdf

80、第2课 桐桐的学难题(fen)(2020.02.19)a

枚举及优化

关于枚举及优化的一些练习题

luhaimin7的博客 1260

第2课 桐桐的学难题(fen).pdf

第2课 桐桐的学难题(fen)

第12课 连续一段相同

中间值是一个值M,至少一半的=M。100%的据:1

你猜我是谁? 1235

狐猬编程C++2级 第12课 连续一段相同 count

输入n个,n<=500000,每个不超过10000,最多连续出现了多少个相同

2401_85014072的博客 527

CSP认证201509-1-列分段-(Java)100分

列分段 试题编号: 201509-1 试题名称: 列分段 时间限制: 1.0s 内存限制: 256.0MB 问题描述   给定一个整列,列中连续相同的最长整序列算成一段,问列中共有多少段? 输入格式   输入的第一行包含一个整n,表示列中整的个。   第二行包含n个整a1, a2, …, an,表示给定的列,相邻的整之间用一个空格分隔。 输出格式   输出一个整,表示给定的列有多个段。 样例输入 8 8 8 8 0 12 12 8 0 样例输出 5 样例说明   8 8 8是

qq_45772965的博客 308

连续一段的和 题解

已知N个这N个中某一段的和。

2301_76701550的博客 472

[wk]列分段

【代码】[wk]列分段。

Qongjv的博客 94

算法一个组中连续字之和最大的值

题目: 一个组中连续字之和最大值。其中连续字可以从末尾到起始值,举例: 组:1,-2,1,3,-1,3 最大值:7,组是1,-2,1,3,-1,3 要组最大长度是100000 值符合[-2000,2000] 计算时间小于100ms 思考: 这个问题相当于:1)以第m个元素开始,以第m-1个元素结束,计算其最大值;2)然后遍历了第[1,n]个最大元素开始的组后,取最大值。 算法...

qijian111的专栏 4841

每日一题#20 连续段计/连续相同元素

本文介绍了一道经典的连续段计题目——2348. 全0子组的目。解题关键在于发现连续k个0的子量遵循等差和公式k×(k+1)/2。通过遍历组并记录当前连续0的个,可以高效计算出结果。文章提供了Python和Java的双版本代码实现,时间复杂度O(n),空间复杂度O(1)。这类问题具有通用解法,适用于其他连续相同元素的计场景,如等差列划分、最大连续1的个等题目。

ll052319的博客 810

列分段:给定一个整列,列中连续相同的最长整序列算成一段,问列中共有多少段?

问题描述   给定一个整列,列中连续相同的最长整序列算成一段,问列中共有多少段? 输入格式   输入的第一行包含一个整n,表示列中整的个。   第二行包含n个整a1, a2, …, an,表示给定的列,相邻的整之间用一个空格分隔。 输出格式   输出一个整,表示给定的列有多个段。 样例输入 8 8 8 8 0 12 12 8 0 样例输出 5 样例说明   8 8 8是第一段,0是第二段,12 12是第三段,倒第二个整8是第四段,最后一个0是第五段。

RPG 4754

关于一段最大的连续矩形面积

最大连续矩形面积

scorpiocj的专栏 3214

找出一段连续的正整序列中重复(或缺失)的那个

有这样一个简单的问题:给定n-m+2(或n-m)个正整组成的乱序序列,其元素是m到n(n>m>=1)中的互不相同的正整,有且只有一个是重复(或缺失)的。如何找到那个?(这里假定缺失的不是n或m) 由Ivony提出的异或算法想到的。 1、由于[m,n]这段闭区间的异或算法暂时没有想到,所以就用[1,m-1]^[1,n]来间接得出[m,n]这段闭区间的异或。 2、...

564

据分析/运营——SQL面试题:如何用户的最大连续登陆天

本文介绍一个经典的面试题:如果用户的最大连续登陆天。 题目描述:有一个用户登陆表,表中有两列,一列是userid,代表用户的id;另一列是sigindate,代表用户的登陆日期。现在要每个用户的最大连续登陆天。 解题思路:对于每一个用户,首先出它的日期排名ranking, 然后再出今天距离 登陆日期的日期天 dates ,拿这个天 减去 - 它的排名, 得到一个辅助列 diff,然后出diff的最大计,即为用户的最大连续登陆天。是不是看的很迷糊?最大计?没事,下面对这个思路进行详细的

qq_43019258的博客 1万+

LeetCode 525 连续

题目链接 给定一个二进制组 nums , 找到含有相同量的 0 和 1 的最长连续组,并返回该子组的长度。 示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同量0和1的最长连续组。 示例 2: 输入: nums = [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同量0和1的最长连续组。 思维题~ 我们把 000 转化为 −1-1−1,然后一遍前缀和,题目就转化为一段和为 000 的区间的最大长度,用 ma

旺崽的博客 6669

连续相同字符统计

大致思路:将一维组cnt改成二维,让每一行只存相同字母的连续出现次,即只要下一个遍历到的字母跟上一个不一样,就让行号j++,并且在对应列加1,如果一样,说明是连续出现相同字母,则在当前行对应列加1。(可以把26个字母,对应为26列,从0--25。其中每个字符输出一行,每行以空格为分隔,输出该字符与出现的个。一个非空字符串(长度不超过100,仅由小写字母组成)。按从左到右字符出现的顺序,输出每个字符连续出现的个。给定一个字符串,统计其中连续出现的相同字符个

2303_77622297的博客 439

java 四个连续相等的_用java从字符串如(aaaabbbssa)中取出连续相同的字符子串,并按从长到短排序...

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class MatcherDemo {public...

weixin_39596975的博客 281

python统计列表中元素个_python中计算一个列表中连续相同的元素个方法

python中计算一个列表中连续相同的元素个方法最简单的例子:a = [1,1,1,1,2,2,2,3,3,1,1,1,3]# 问:计算a中最多有几个连续的1很明显,答案是4如果用代码实现,最先想到的就是itertools:import itertoolsa = [1,1,1,1,2,2,2,3,3,1,1,1,3]print max([len(list(v)) for k,v in itert...

weixin_39611008的博客 7067
上一篇: 第2题 房间数量
下一篇: C++跑酷游戏
ojczoscn
博客等级 码龄3年 58粉丝 7原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值