Problem A: 求个最大值

Problem A: 求个最大值

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 1635  Solved: 1339
[Submit][Status][Web Board]

Description

定义MaxValue类,用于求一系列非零整数的最大值。其中:

1. 数据成员elements用于存储所有输入的非零整数。

2. void append(int)用于向elements中添加一个新数据。

3. int getMax()用于求出elements中的最大值。

Input

输入若干个整数,以输入0表示输入结束。

Output

所有输入的非零整数中的最大值。

Sample Input

321
496
553
338
837
463
158
154
929
537
0

  

Sample Output

929

HINT

使用vector更为容易实现。

Append Code

append.cc,

int main()
{
    int a;
    MaxValue test;
    cin>>a;
    while (a != 0)
    {
        test.append(a);
        cin>>a;
    }
    cout<<test.getMax()<<endl;
    return 0;
}

  

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class MaxValue
{
public :
    vector<int> elements;
    void append(int num)
    {
        elements.push_back(num);
    }
     int getMax()
     {
         sort(elements.begin(), elements.end());//排序
         return elements.back();//返回最后一个元素
     }
};
int main()
{
    int a;
    MaxValue test;
    cin>>a;
    while (a != 0)
    {
        test.append(a);
        cin>>a;
    }
    cout<<test.getMax()<<endl;
    return 0;
}

  

原文地址:https://www.cnblogs.com/Jie-Fei/p/9129484.html

时间: 2024-08-04 22:08:59

Problem A: 求个最大值的相关文章

Problem J: 求个最大值

Problem J: 求个最大值 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 871  Solved: 663[Submit][Status][Web Board] Description 定义MaxValue类,用于求一系列非零整数的最大值.其中: 1. 数据成员elements用于存储所有输入的非零整数. 2. void append(int)用于向elements中添加一个新数据. 3. int getMax()用于求出elements中的

树状数组求区间最大值

------  一直用 线段树 求区间最大值,想换种思路,用树状数组试试,肯定是可以的. 首先要对 树状数组的每个 i 所管理的区间有一定的理解.详见上篇博客: 树状数组(BIT)

1010 求个最大值

1010: 求个最大值 时间限制: 1 Sec  内存限制: 128 MB提交: 231  解决: 39[提交][状态][讨论版] 题目描述 给出 n(1 <= n <= 200000)个数字 ai(1 <= ai <= 1000000),i 为数字的下标,按输入顺序从 1 开始编号一直到 n,求满足 ai >= aj 的最大的 ai % aj. 输入 第一行一个数字 n,第二行 n 个整数. 输出 题目要求的最大值. 样例输入 2 2 3 样例输出 1 提示

29.求数组最大值

import java.util.Scanner; public class MaxScore { /** * 求数组最大值 */ public static void main(String[] args) { int[] scores = new int[5]; int max = 0; //记录最大值 System.out.println("请输入5位学员的成绩:"); Scanner input = new Scanner(System.in); for(int i = 0;

C语言 不使用if判断求出最大值和最小值

作者 : 卿笃军 上次老师问我们,如果我给你两个整数,你们如何输出其中的较大数,或者较小数呢? 当然,一个if就搞定了,但是如果不能让你们用if判断,你还能找出来吗? 答案是当然的. 首先分析一下,加入给了我们2个数,分别是:5 和 2,这要如何找出来呢? 5 - 2 = 3  ,说明两数相差为3,我们可以从这里入手. 5 + 2 + 3 = 10 . 这不就是5的两倍吗? 5 + 2 - 3 = 4 .这是2的两倍. 哦,下面C语言实现一下: #include <stdio.h> #incl

求局部最大值

求局部最大值问题: 给定一个无重复元素的数组A[0...N-1],找到一个该数组的局部最大值. 问题分析: 遍历一遍得全局最大值,它显然是局部最大值,但是时间复杂度是O(n),现在要求时间复杂度为O(logn). 问题求解过程类似于二分查找,但是还不完全一样,需要分析清楚问题来源.问题中只需要求出一个局部最大值,并且数组中不考虑重复的元素. 因此,可以每次取中间点,当A[mid] > A[mid+1]  丢弃后半段,right = mid; 当A[mid] < A[mid+1],丢弃前半段,l

【C++】输入8个数,求出最大值与最小值

//输入8个数,求出最大值与最小值 #include <iostream> using namespace std; int max(int b[],int n),min(int b[],int n); int main() { int a[8]; cout<<"输入8个int型数 :"; for(int i=0;i<8;i++) cin>>a[i]; cout<<"最大数为 "<<max(a,8)&

Codeforces Round #261 (Div. 2)459D. Pashmak and Parmida&#39;s problem(求逆序数对)

题目链接:http://codeforces.com/contest/459/problem/D D. Pashmak and Parmida's problem time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Parmida is a clever girl and she wants to participate in O

求条件最大值

求条件最大值 Time Limit: 1000MS Memory limit: 65536K 题目描述 懒得想背景故事了,开门见山. 有一个长度为n的整数数列A0,A1,A2....An-1.从中找出两个整数Ai和Aj,Ai在Aj的前面,即i<j,使得Ai-Aj尽可能的大.请输出可能的最大的Ai-Aj的值. 输入 多组输入.每一组测试数据的第一行是一个整数n,然后第二行是n个整数,第i个数 表示Ai.(测试数据组数<=20,2<=n<=10^6,-10^8<=Ai<=1