【算法集训暑期刷题营】8.4日题---思维

简介: 【算法集训暑期刷题营】8.4日题---思维

 👉引言


铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉


💖 ❄️我们的算法之路❄️💖


   众所周知,作为一名合格的程序员,算法 能力 是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。

☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️

💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs) ,💝宽度优先搜索(bfs) ,💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉

image.png


今日主题:思维


 👉⭐️第一题💎


   ✨题目


     1.Nim游戏

image.png


   ✨思路:


只需简单的数学推理,显而易见的是,如果石头堆中只有一块、两块、或是三块石头,那么在你的回合,你就可以把全部石子拿走,从而在游戏中取胜;如果堆中恰好有四块石头,你就会失败。因为在这种情况下不管你取走多少石头,总会为你的对手留下几块,他可以将剩余的石头全部取完,从而他可以在游戏中打败你。因此,要想获胜,在你的回合中,必须避免石头堆中的石子数为 44 的情况


   ✨代码:


class Solution {
public:
    bool canWinNim(int n) {
        return n % 4 != 0;
    }
};


 👉⭐️第二题💎


   ✨题目


      2.灯泡开关

image.pngimage.png


   ✨代码:


class Solution {
public:
    int bulbSwitch(int n) {
        return sqrt(n + 0.5);
    }
};


 👉⭐️第三题💎


   ✨题目


       3.所有蚂蚁掉下来的最后一刻

image.png


   ✨代码:


class Solution {
public:
    int getLastMoment(int n, vector<int>& left, vector<int>& right) {
        int lastMoment = 0;
        for (int ant : left) {
            lastMoment = max(lastMoment, ant);
        }
        for (int ant : right) {
            lastMoment = max(lastMoment, n - ant);
        }
        return lastMoment;
    }
};


🌹写在最后💖

相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹


相关文章
|
4天前
|
机器学习/深度学习 存储 算法
【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解
【算法沉淀】刷题笔记:并查集 带权并查集+实战讲解
|
4天前
|
自然语言处理 算法
算法刷题(二十三):Bigram 分词
算法刷题(二十三):Bigram 分词
43 0
|
4天前
|
算法
算法刷题(二十二):宝石与石头
算法刷题(二十二):宝石与石头
42 0
|
4天前
|
存储 算法 容器
算法刷题小技巧【持续补充~】
算法刷题小技巧【持续补充~】
9 2
|
4天前
|
算法 安全 定位技术
【刷题】备战蓝桥杯 — dfs 算法
dfs算法在数据较小的情况下可以使用。 一定一定要确定好终止条件,避免栈溢出。 相应做好回溯,保证每次的遍历都是不一样的选择,避免少结果。 针对题目进行对应细节处理,有能力的话可以进行剪枝优化!!!
14 0
|
4天前
|
算法
算法系列--链表刷题(二)(下)
算法系列--链表刷题(二)(下)
18 0
|
4天前
|
算法
算法系列--链表刷题(二)(上)
算法系列--链表刷题(二)
19 0
|
4天前
|
存储 算法
智能算法 | 刷题的方法真的找到正确思路了嘛
智能算法 | 刷题的方法真的找到正确思路了嘛
|
4天前
|
算法 定位技术
每日刷题|贪心算法初识
每日刷题|贪心算法初识
|
4天前
|
算法 vr&ar
1611F - ATM and Students详细题解(*1800,线段树维护前缀和;双指针算法(思维))
1611F - ATM and Students详细题解(*1800,线段树维护前缀和;双指针算法(思维))
16 0