笔试强训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;
}

相关推荐
xiaoye-duck1 小时前
计数排序:高效非比较排序解析
数据结构
稚辉君.MCA_P8_Java3 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
稚辉君.MCA_P8_Java3 小时前
通义 插入排序(Insertion Sort)
数据结构·后端·算法·架构·排序算法
无限进步_3 小时前
C语言动态内存的二维抽象:用malloc实现灵活的多维数组
c语言·开发语言·数据结构·git·算法·github·visual studio
Swift社区4 小时前
LeetCode 432 - 全 O(1) 的数据结构
数据结构·算法·leetcode
逝玄4 小时前
关于图灵停机问题不可判定性证明
算法·计算机科学
低客的黑调4 小时前
为你的项目选择一个适合的[垃圾收集器]
java·jvm·算法
芬加达4 小时前
leetcode34
java·数据结构·算法
资深web全栈开发4 小时前
LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理
算法·leetcode·职场和发展