力扣 (LeetCode) 刷题,简单 + 中等题 (第 29 期)
力扣(LeetCode)定期刷题,每期 10 道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
第 1 题:分割数组为连续子序列
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 2 题:翻转矩阵后的得分
试题要求如下:
解题思路:
为了得到最高的分数,矩阵的每一行的最左边的数都必须为 1。为了做到这一点,可以翻转那些最左边的数不为 1 的那些行,而其他的行则保持不动。
当将每一行的最左边的数都变为 1 之后,就只能进行列翻转了。为了使得总得分最大,我们要让每个列中 1 的数目尽可能多。
因此,扫描除了最左边的列以外的每一列,如果该列 0 的数目多于 1 的数目,就翻转该列,其他的列则保持不变。
回答(C 语言):
复制代码
运行效率如下所示:
第 3 题:寻找旋转排序数组中的最小值
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 4 题:乘积最大子数组
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 5 题:不同路径
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 6 题:判断路径是否相交
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 7 题:摆动序列
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 8 题:单调递增的数字
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 9 题:移除链表元素
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示:
第 10 题:计数二进制子串
试题要求如下:
回答(C 语言):
复制代码
运行效率如下所示
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/6843ee59f8a8f973816ae0d66】。文章转载请联系作者。
评论