笔试强训day07



在字符串中找出连续最长的数字串

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
const int N = 500;
char s[N];
bool check(char c) {
    return c >= '0' && c <= '9';
}
int main() {
    scanf("%s", s);
    int l = -1, r = -1;
    int n = strlen(s);
    int left = 0, right = -1;
    while (left < n) {
        if (check(s[left])) {
            int ll = left;
            while (left < n && check(s[left]))++left;
            right = left;
            if (right - ll > r - l) {
                l = ll, r = right;
            }
        }
        ++left;
    }
    for (int i = l; i < r; ++i)cout << s[i];
    return 0;
}


岛屿数量

cpp 复制代码
class Solution {
private:
    int dx[4] = {1,-1,0,0},dy[4] = {0,0,1,-1};
    bool vis[210][210]{};
    int n,m;
    void dfs(int i,int j,vector<vector<char> >&grid)
    {
        vis[i][j] = true;
        for(int k = 0;k<4;++k)
        {
            int x = i+dx[k],y = j+dy[k];
            if(x>=0&&x<n&&y>=0&&y<m&&grid[x][y]=='1'&&vis[x][y]==false)
            {
                dfs(x,y,grid);
            }
        }
    }
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 判断岛屿数量
     * @param grid char字符型vector<vector<>> 
     * @return int整型
     */
    int solve(vector<vector<char> >& grid) {
        // write code here
        int cnt = 0;
        n = grid.size(),m =grid[0].size();
        for(int i = 0;i<n;++i)
        {
            for(int j = 0;j<m;++j)
            {
                if(grid[i][j] == '1' && vis[i][j]==false)
                {
                    dfs(i,j,grid);
                    ++cnt;
                }
            }
        }
        return cnt;
    }
};


拼三角

cpp 复制代码
#include <bits/stdc++.h>

using namespace std;
const int N = 10;
int arr[N];

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        for(int i = 0;i<6;++i)
            cin>>arr[i];
        sort(arr,arr+6);
        if(arr[0] + arr[1] > arr[2] && arr[3] + arr[4] > arr[5] ||
 arr[0] + arr[2] > arr[3] && arr[1] + arr[4] > arr[5] ||
 arr[0] + arr[3] > arr[4] && arr[1] + arr[2] > arr[5] ||
 arr[0] + arr[4] > arr[5] && arr[1] + arr[2] > arr[3])
            cout << "Yes" << endl;
        else cout<<"No"<<endl;
    }
    return 0;
}

相关推荐
rengang667 分钟前
10-支持向量机(SVM):讲解基于最大间隔原则的分类算法
人工智能·算法·机器学习·支持向量机
AndrewHZ1 小时前
【图像处理基石】暗光增强算法入门:从原理到实战(Python+OpenCV)
图像处理·python·opencv·算法·计算机视觉·cv·暗光增强
lifallen2 小时前
从Apache Doris 学习 HyperLogLog
java·大数据·数据仓库·算法·apache
智驱力人工智能2 小时前
使用手机检测的智能视觉分析技术与应用 加油站使用手机 玩手机检测
深度学习·算法·目标检测·智能手机·视觉检测·边缘计算
姚瑞南2 小时前
【AI 风向标】四种深度学习算法(CNN、RNN、GAN、RL)的通俗解释
人工智能·深度学习·算法
补三补四3 小时前
SMOTE 算法详解:解决不平衡数据问题的有效工具
人工智能·算法
RTC老炮3 小时前
webrtc弱网-RobustThroughputEstimator源码分析与算法原理
网络·算法·webrtc
努力努力再努力wz3 小时前
【C++进阶系列】:万字详解智能指针(附模拟实现的源码)
java·linux·c语言·开发语言·数据结构·c++·python
听风吹等浪起3 小时前
分类算法-逻辑回归
人工智能·算法·机器学习
敲代码的嘎仔3 小时前
JavaWeb零基础学习Day2——JS & Vue
java·开发语言·前端·javascript·数据结构·学习·算法