👉引言
铭记于心 | ||
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉 |
💖 ❄️我们的算法之路❄️💖
众所周知,作为一名合格的程序员,算法 能力 是不可获缺的,并且在算法学习的过程中我们总是能感受到算法的✨魅力✨。
☀️🌟短短几行代码,凝聚无数前人智慧;一个普通循环,即是解题之眼🌟☀️
💝二分,💝贪心,💝并查集,💝二叉树,💝图论,💝深度优先搜索(dfs) ,💝宽度优先搜索(bfs) ,💝数论,💝动态规划等等, 路漫漫其修远兮,吾将上下而求索! 希望在此集训中与大家共同进步,有所收获!!!🎉🎉🎉
今日主题:思维
👉⭐️第一题💎
✨题目
✨思路:
只需简单的数学推理,显而易见的是,如果石头堆中只有一块、两块、或是三块石头,那么在你的回合,你就可以把全部石子拿走,从而在游戏中取胜;如果堆中恰好有四块石头,你就会失败。因为在这种情况下不管你取走多少石头,总会为你的对手留下几块,他可以将剩余的石头全部取完,从而他可以在游戏中打败你。因此,要想获胜,在你的回合中,必须避免石头堆中的石子数为 44 的情况
✨代码:
class Solution { public: bool canWinNim(int n) { return n % 4 != 0; } };
👉⭐️第二题💎
✨题目
✨代码:
class Solution { public: int bulbSwitch(int n) { return sqrt(n + 0.5); } };
👉⭐️第三题💎
✨题目
✨代码:
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; } };
🌹写在最后💖:
相信大家对今天的集训内容的理解与以往已经有很大不同了吧,或许也感受到了算法的魅力,当然这是一定的,路漫漫其修远兮,吾将上下而求索!伙伴们,明天见!🌹🌹🌹