程序员代码面试指南 1.11:可见的山峰对数量(数学题)

可见的山峰对数量

https://www.nowcoder.com/practice/80d076bcea594b86ba55b913de4c069d

1、思路

  • 当环形结构中只有一座山峰时,可见山峰对数量为0。当有两座时,可见山峰对数量为1。当有三座时可见山峰对数量为3。可以推导得出当有n座山峰时,可见山峰对数量为2 * n - 3

  • 假设环形结构中有n座山峰,除了最高山峰和次高山峰外还剩下n - 2座山峰,这n - 2座山峰中每一座都能根据小找大的方式找到两对,所以一共有(i - 2) * 2对,再加上最高山峰和次高山峰这对,一共就有2 * n - 3对。

2、代码

#include <iostream>

using namespace std;

int main()
{
    int T;
    cin >> T;

    while (T -- )
    {
        int n, p, m;
        cin >> n >> p >> m;

        cout << max(2 * n - 3, 0) << endl;
    }

    return 0;
}

主要是为左程云的《程序员代码面试指南》这本书改写C++版的题解。

全部评论

相关推荐

06-27 18:53
门头沟学院 Java
这样才知道自己不适合搞代码,考公去咯
码农索隆:好家伙,我这干的挺好,我老妈还劝我考公呢
点赞 评论 收藏
分享
牛客928043833号:在他心里你已经是他的员工了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-23 18:30
美团优选内容调整,屁股都没离开座椅呢,多多买菜来挖了
熬夜脱发码农:哈,拼多多真挖人是吧
投递美团等公司9个岗位 >
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务