Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【C++笔试强训】如何成为算法糕手Day9

【C++笔试强训】如何成为算法糕手Day9

作者头像
小文要打代码
发布于 2024-10-17 00:06:59
发布于 2024-10-17 00:06:59
11900
代码可运行
举报
文章被收录于专栏:C++学习历程C++学习历程
运行总次数:0
代码可运行

添加逗号

牛客网做题链接:添加逗号_牛客题霸_牛客网 (nowcoder.com)

思路:

一道简单的模拟题,有很多位数的数字可以看作字符串,将图画出来发现,当位数只有6(其中一种情况)位时都好会放在字符串结尾,因此需要限制。

代码实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
using namespace std;

int main() {
    string s;
    cin>>s;
    string ret;
    int n=s.size();

    for(int i=0;i<n;i++)
    {
        ret+=s[i];
        if((n-i-1)%3==0 && i!=n-1)
        {
            ret+=',';
        }
    }
    cout<<ret<<endl;

    return 0;
}

跳台阶

牛客网做题链接:跳台阶_牛客题霸_牛客网 (nowcoder.com)

思路:

递归的思想,当台阶为一阶时有一种跳法,当台阶为二阶有两种跳法,当台阶为n阶时,可以从最后一步来考虑,如果最后一步跳一阶,前面有f(n−1)种跳法,

如果最后一步跳两阶的话,前面有f(n−2)种跳法.

f(0)=1 (0阶台阶有1种跳法,0阶乘=1)

f(1)=1

f(2)=2

f(n)=f(n−1)+f(n−2)

代码实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param number int整型
     * @return int整型
     */
    int jumpFloor(int number) {
        
        if (number < 2) return 1;
        vector<int> dp(number + 1);
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= number; i++) {
            dp[i] = dp[i - 1] + dp[i - 2];
        }

        return dp[number];
    }
};

扑克牌顺子

牛客网做题链接:扑克牌顺子_牛客题霸_牛客网 (nowcoder.com)

思路:

有两种做法,1、排序+模拟;2、规律

第一种需要先对给出数组进行排序,找出数与数之间的差额,若差额过大则返回false反之返回true。

第二种找出顺子的规律,因题目限制顺子数仅为5个,因此顺子中最大数与最小数相减不可能大于4,再进行分类讨论防止出现相同的数字。

代码实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <algorithm>
class Solution {
   
   
    bool hash[14]={0};
public:
    bool IsContinuous(vector<int>& numbers) {
        int max1=0,min1=14;
        for(auto s: numbers)
        {
            if(s)
            {
                if(hash[s])return false;
                hash[s]=true;
                max1=max(max1,s);
                min1=min(min1,s);
            }
        }
        return max1-min1<=4;
    }
};

学习编程就得循环渐进,扎实基础,勿在浮沙筑高台

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​​​48days强训——day9
题解二:n - i - 1 计算的是从当前字符到字符串末尾的距离,当能被3取模则添加逗号。
秋邱
2025/04/11
580
[笔试强训day09]
南桥
2024/05/28
940
[笔试强训day09]
​​​​​48days强训——day10
题解:因为只能买卖⼀次,因此,对于第i天来说,如果在这天选择卖出股票,应该在 内,股票最低点买⼊股票,此时就可以获得最⼤利润。
秋邱
2025/04/15
660
​​​​​48days强训——day10
​​​​​48days强训——day4
若单词为"SEE"时,应该返回 true, 也即: 若单词为"XYZY"时,应该返回 false。
秋邱
2025/03/27
730
​​​​​48days强训——day4
​​​48days强训——day5
数据范围:1≤n≤50001≤n≤5000,1≤m≤100001≤m≤10000 要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n) 示例1 输入: 5,3 复制返回值: 3 复制 示例2 输入: 2,3 复制返回值: 1 复制说明: 有2个小朋友编号为0,1,第一次报数报到3的是0号小朋友,0号小朋友出圈,1号小朋友得到礼物 示例3 输入: 10,17 复制返回值: 2
秋邱
2025/03/28
700
​​​48days强训——day5
​​​48days强训——day11
错误题解:起初想到的是贪心,但是贪心这一题不适用。n=2,m=100,a=2,b=3时,贪心值为2,而最大价值为6,故贪心是不可取的。
秋邱
2025/04/16
540
​​​48days强训——day11
【C++笔试强训】如何成为算法糕手Day2
(1)快递不加急且小于20kg; (2)快递加急且小于20kg; (3)快递不加急且大于20kg; (4)快递加急且大于20kg;
小文要打代码
2024/10/16
1330
【C++笔试强训】如何成为算法糕手Day2
【C++笔试强训】如何成为算法糕手Day11
面对这样一个问题——给定一定数量的苹果和桃子,以及两种不同价值组合方式的礼包(一号礼包和二号礼包),目标是最大化所能组成的礼包总价值。这个问题不能简单地通过贪心算法解决,因为不同礼包的价值和所需资源比例可能不同,导致无法直接选择价值最高的礼包无限制地组合。
小文要打代码
2024/10/20
1010
【C++笔试强训】如何成为算法糕手Day11
【C++笔试强训】如何成为算法糕手Day3
利用优先队列将最大数当作大根,每次将最大的数进行判断,使其满足次数不超过k次。
小文要打代码
2024/10/16
1150
【C++笔试强训】如何成为算法糕手Day3
【C++笔试强训】如何成为算法糕手Day5
这是一道简单的模拟题,我们要找出三个字符(y、o、u)中最少的那个字符的数量,这个数量n表示最多能组成多少个"you"。然后,我们计算o字符的总数减去n,得到剩余的o字符数量。如果剩余的o字符少于2个,那么就不需要进一步操作。如果剩余的o字符数量是2个或更多,我们可以在结果上加1(对于2个o),加2(对于3个o),以此类推。最终的结果是n加上剩余o字符数量减去1。
小文要打代码
2024/10/16
1120
【C++笔试强训】如何成为算法糕手Day5
【C++笔试强训】如何成为算法糕手Day8
要找到两个正整数A和B的最小公倍数,我们可以采用一个公式,即两数之积除以它们的最大公约数。为了求得这个最大公约数,有多种方法可供选择,其中最为人所熟知的是穷举法和辗转相除法。在这里,我们主要关注并应用这两种方法:穷举法和辗转相除法,来求解A和B的最大公约数,进而求得它们的最小公倍数。
小文要打代码
2024/10/17
990
【C++笔试强训】如何成为算法糕手Day8
【C++】 —— 笔试刷题day_9
我们思考一下,这个数特别大,我们是不是可以按照字符串string的方式进行输入,再对字符串进行相关操作来完成加,
星辰与你
2025/03/29
800
【C++】 —— 笔试刷题day_9
【C++笔试强训】如何成为算法糕手Day7
dfs方法: 设目前指针指向一个岛屿中的某一点 (i, j),寻找包括此点的岛屿边界。
小文要打代码
2024/10/16
1270
【C++笔试强训】如何成为算法糕手Day7
【C++笔试强训】如何成为算法糕手Day1
给定两个整数数组分别为nums1nums1, nums2nums2,找到它们的公共元素并按返回。
小文要打代码
2024/10/16
1230
【C++笔试强训】如何成为算法糕手Day1
【C++笔试强训】如何成为算法糕手Day6
要实现这个功能,我们可以使用两个指针分别指向两个字符串的末尾,然后从后往前遍历这两个字符串,同时处理加法运算和进位。这里我假设两个字符串都是用字符数组表示的,并且它们的长度可能不同。如果某个字符串比另一个短,我们可以在其末尾添加0来补齐,以便两个字符串可以从后往前同时遍历。
小文要打代码
2024/10/16
1150
【C++笔试强训】如何成为算法糕手Day6
48days强训——day2
先判断快递重量a,若a<=1,基础费用为 20 元;若a>1,超出 1kg 部分向上取整,按每千克 1 元计算,再加上 20 元得到基础费用,接着根据字符 b 判断是否加。
秋邱
2025/03/25
580
48days强训——day2
​​​​​​​​48days强训——day14
​ 📔个人主页📚:Shawn_Griffin-CSDN博客 ☀️专属专栏✨:OJ刷题 🏅往期回顾🏆:​48days强训——day13 🌟其他专栏🌟:OJ刷题
秋邱
2025/05/07
1230
每周算法2:数学+模拟+哈希表+栈+线性dp+贪心(简单)
比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。
啊QQQQQ
2024/11/19
670
每周算法2:数学+模拟+哈希表+栈+线性dp+贪心(简单)
【C++笔试强训】如何成为算法糕手Day4
我们需要假设每个位置的元素作为第一个字母,然后相邻的四个方向进行递归,并且不能出现重复使用同一个位置的元素。通过深度优先遍历搜索的方式,不断地枚举相邻元素作为下一个字母出现的可能性,并在递归结束时,直到枚举完所有的可能性,得到正确的结果。
小文要打代码
2024/10/16
1020
【C++笔试强训】如何成为算法糕手Day4
48days强训——day8
题解: 最小公倍数(LCM)可以通过最大公约数(GCD)计算:LCM(a,b) = a×b / GCD(a,b)。使用欧几里得算法求GCD,即递归地取模直到余数为0。时间复杂度为O(log min(a,b)),适用于大数计算。
秋邱
2025/04/09
930
48days强训——day8
相关推荐
​​​48days强训——day9
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档