【笔试强训】day9

简介: 【笔试强训】day9

1.添加逗号

思路:

没思路

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include<string>
#include<algorithm>
using namespace std;
 
int main() {
    string a;
    cin >> a;
    string ans;
    int p = 1;
    for (int i = a.size() - 1; i >= 0; i--) {
        ans += a[i];
        if (p % 3 == 0 && i != 0)ans += ',';
        p++;
    }
    reverse(ans.begin(), ans.end());
    cout << ans;
}
// 64 位输出请用 printf("%lld")

2.跳台阶

思路:

题目要求空间复杂度o1,那就用两个变量迭代斐波那契数列就行。

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
 
int main() {
    int n;
    cin >> n;
    if (n == 1) {
        cout << 1 << endl;
        return 0;
    }
    if (n == 2) {
        cout << 2 << endl;
        return 0;
    }
    long long a = 1, b = 2;
    long long c;
    for (int i = 3; i <= n; i++) {
        c = a + b;
        a = b;
        b = c;
    }
    cout << c << endl;
}

3.扑克牌顺子

思路:

直接思考On做法.On做法不难,主要是还有空间复杂度为O1。这就意味着什么mp,数组统统错误。

回归问题本质,数子0是癞子,不用考虑。用两个变量维护最大值和最小值就行了。中间该如何判断有没有重复元素呢?考虑用一个位图表示。第i位为1,表示i这个数子出现了一次。

如果第i位为1了的情况下,又遇到了i.那就说明重复了直接false

最后判断最大值和最小值的差值。如果差值大于4,不用考虑直接滚。小于4,且没有除了0以外的重复元素,那就一定是可以组成顺子。

代码:

#define _CRT_SECURE_NO_WARNINGS 1
class Solution {
public:
 
    bool IsContinuous(vector<int>& numbers) {
        int mx = 0;
        int mi = 1e9;
        int s = 0;
        for (int i = 0; i < numbers.size(); i++) {
            if (numbers[i] == 0) {
                continue;
            }
            mx = max(mx, numbers[i]);
            mi = min(mi, numbers[i]);
            if ((s >> numbers[i]) & 1) {
                return false;
            }
            else {
                s |= (1 << numbers[i]);
 
            }
        }
        if (mx - mi > 4) {
            return false;
        }
        return true;
    }
};


相关文章
|
算法 C++
48天C++笔试强训 001(下)
48天C++笔试强训 001(下)
45 1
|
6月前
【笔试强训】day12
【笔试强训】day12
|
6月前
【笔试强训】day8
【笔试强训】day8
|
6月前
|
人工智能
【笔试强训】day10
【笔试强训】day10
|
存储 C语言 C++
48天C++笔试强训 001(上)
48天C++笔试强训 001
56 0
强训Day1
为了校招而进行的强训DAY1
强训Day1
|
算法 C++
【笔试强训】Day_01
目录 一、选择题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 二、编程题 1、组队竞赛 2、删除公共字符
92 0
【笔试强训】Day_01
|
人工智能 安全 测试技术
【笔试强训】Day_02
目录 一、选择题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 二、编程题 1、排序子序列 2、倒置字符串
125 0
【笔试强训】Day_02
|
存储 编译器 C++
笔试强训错题总结(一)(上)
笔试强训错题总结(一)
121 0
|
算法 编译器 C语言
笔试强训错题总结(一)(下)
笔试强训错题总结(一)