【每日一练】day(3)


一、选择题

eg1

在这里插入图片描述

eg2

在这里插入图片描述

eg3

在这里插入图片描述

eg4

在这里插入图片描述

eg5

在这里插入图片描述
在这里插入图片描述

二、编程题

eg1

在这里插入图片描述
【解题思路】:
遍历字符串,使用cur去记录连续的数字串,如果遇到不是数字字符,则表示一个连续的数字串结束了,则将数字串跟之前的数字串比较,如果更长,则更新更长的数字串更新到ret。
在这里插入图片描述

#include <iostream>
#include <string>
using namespace std;

int main()
{
    
    
    string s;
    cin >> s;
    string cur;
    string ret;
    
    //<= s.size();防止出现abcd12345ed125ss123456789
    for(int i = 0; i <=s.size(); ++i)
    {
    
    
        //如果是数字字符就插入cur
        if('0' <= s[i] && s[i] <= '9')
        {
    
    
            cur += s[i];
        }
        
        else 
        {
    
    
            //判断cur的长度是否大于ret的长度
            if(cur.size() > ret.size())
            {
    
    
                ret = cur;
            }
            //清空cur
            cur.clear();
        }
    }
    
    cout << ret << endl;
    return 0;
}

eg2

在这里插入图片描述
【解题思路1】:
思路一:数组排序后,如果符合条件的数存在,则一定是数组中间那个数。这种方法虽然容易理解,但由于涉及到快排sort,其时间复杂度为O(NlogN)并非最优

class Solution {
    
    
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) 
    {
    
    
        sort(numbers.begin(), numbers.end());
        int index = numbers.size() / 2;
        return numbers[index];
    }
};

【解题思路2】:
众数:就是出现次数超过数组长度一半的那个数字如果两个数不相等,就消去这两个数,最坏情况下,每次消去一个众数和一个非众数,那么如果存在众数,最后留下的数肯定是众数
在这里插入图片描述

class Solution {
    
    
public:
    int MoreThanHalfNum_Solution(vector<int> numbers) 
    {
    
    
        int result = numbers[0];
        int times = 1;
        for(int i = 1; i < numbers.size(); ++i)
        {
    
    
            if(times != 0)
            {
    
    
                if(result == numbers[i])
                {
    
    
                    ++times;
                }
                else 
                {
    
    
                    --times;
                }
            }
            
            else 
            {
    
    
                result = numbers[i];
                times = 1;
            }
        }
        
        return result;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_52809807/article/details/123759751
今日推荐