力扣 (LeetCode) 刷题,简单题 (第 13 期)
力扣(LeetCode)定期刷题,每期 10 道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。
第 1 题:字符的最短距离
试题要求如下:
解答思路:
从左向右遍历,记录上一个字符 C 出现的位置 prev,那么答案就是 i - prev。
从右想做遍历,记录上一个字符 C 出现的位置 prev,那么答案就是 prev - i。
这两个值取最小就是答案。
回答(C 语言):
运行效率如下所示:
第 2 题:棒球比赛
试题要求如下:
解答思路:
堆栈思想。
回答(C 语言):
运行效率如下所示:
第 3 题:判定是否互为字符重排
试题要求如下:
回答(C 语言):
运行效率如下所示:
第 4 题:岛屿的周长
试题要求如下:
解答思路:
每个岛+4 周围四个方向有岛屿则-1。
回答(C 语言):
运行效率如下所示:
第 5 题:两个数组的交集
试题要求如下:
解答思路:
使用哈希表查询:对数组 1 进行映射,将数组元素作为下标,对散列表相应元素++;遍历数组 2,同样将数组元素作为下标,判断该下标处元素是否有数值(在数组 1 中是否存在)。
回答(C 语言):
运行效率如下所示:
第 6 题:计算质数
试题要求如下:
解答思路:
质数是指在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的自然数。
厄拉多塞筛法:
回答(C 语言):
运行效率如下所示:
第 7 题:旋转数组
试题要求如下:
解答思路:
使用反转数组的方法,例如 k 为 3 时:
原始数组 : 1 2 3 4 5 6 7
反转所有数字后 : 7 6 5 4 3 2 1
反转前 k 个数字后 : 5 6 7 4 3 2 1
反转后 n-k 个数字后 : 5 6 7 1 2 3 4 --> 结果
回答(C 语言):
运行效率如下所示:
第 8 题:二叉树的层平均数
试题要求如下:
回答(C 语言):
运行效率如下所示:
第 9 题:修建二叉搜索树
试题要求如下:
回答(C 语言):
运行效率如下所示:
第 10 题:分糖果
试题要求如下:
回答(C 语言):
运行效率如下所示:
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/e2d40832cc1c2c90e22528758】。文章转载请联系作者。
评论