Leetcode 每日一题和每日一题的下一题刷题笔记 16/30

206 阅读3分钟

Leetcode 每日一题和每日一题的下一题刷题笔记 16/30

写在前面

这是我参与更文挑战的第16天,活动详情查看:更文挑战

快要毕业了,才发现自己被面试里的算法题吊起来锤。没办法只能以零基础的身份和同窗们共同加入了力扣刷题大军。我的同学们都非常厉害,他们平时只是谦虚,口头上说着自己不会,而我是真的不会。。。乘掘金鼓励新人每天写博客,我也凑个热闹,记录一下每天刷的前两道题,这两道题我精做。我打算每天刷五道题,其他的题目嘛,也只能强行背套路了,就不发在博客里了。

本人真的只是一个菜鸡,解题思路什么的就不要从我这里参考了,编码习惯也需要改进,各位如果想找刷题高手请教问题我觉得去找 宫水三叶的刷题日记 这位大佬比较好。我在把题目做出来之前尽量不去看题解,以免和大佬的内容撞车。

另外我也希望有得闲的大佬提供一些更高明的解题思路给我,欢迎讨论哈!

好了废话不多说开始第十六天的前两道题吧!

2021.6.16 每日一题

877. 石子游戏

关于博弈的题,我们要和 OJ 博弈一下啊,看看是不是先手必赢[手动滑稽]。我自己手推感觉先手的这位一直在赢,先试一下看先手输的测试用例是什么样的。


class Solution {
public:
    bool stoneGame(vector<int>& piles) {
        return true;
    }
};

image.png

emmm,那这道题再用背包问题来做,其实就是对这个结论的证明了。

2021.6.16 每日一题下面的题

1812. 判断国际象棋棋盘中一个格子的颜色

这题应该也有技巧,假如我们把棋盘的格子这个二维矩阵摊平用一个很长的数组来存,那么其中的奇偶顺序就是格子的颜色了。我这么做,实际上是 row x 8 + col,这里的 8 是偶数,偶数和奇数相乘得偶数,偶数和偶数相乘还得偶数,偶数加奇数得奇数,偶数加偶数得偶数,每一行里面奇偶对调才能找到正确的格子,但是我这种数组索引和列数同奇偶,没法每行都对调奇偶,所以只能再引入一个奇偶交替的东西,让索引有奇偶对调,比如这样 row x 8 + col + row,这样就和格子同奇偶了,反正只要同奇偶,我把式子简化一下,row + col这样就行。

代码如下:


class Solution {
public:
    bool squareIsWhite(string coordinates) {
        return (coordinates[0]-'a' + coordinates[1]-'1')%2 == 1;
    }
};

image.png

小结

今天是低代码专题吗哈哈哈?代码都好少啊,真的变成脑筋急转弯了。

参考链接