zoukankan      html  css  js  c++  java
  • interviewstreet pair

             今天突然想起interviewstreet这个网站,这个网站和其他oj有些不同,每题只要通过一组测试样例就会获得一定的分数,然后按分数的高低进行排名,刚刚看到一题。

    链接  https://www.hackerrank.com/challenges/pairs

           题意大概是输入n和k,然后是n个数每个数在10^9范围内,计算出有多少对a[i]和a[j]使得a[i]+k = a[j]。

    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main()
    {
        int N, K;
        cin >> N >> K;
        long long *key = new long long[N];
    
        for (int i = 0; i < N; i++)
        {
            cin >> key[i];
        }
        sort (key, key+N);                     //对数组进行排序
        int k = 0;
        for (int i = 0; i < N; i++)
        {
            int begin = i+1;
            int end = N-1;
            int value = key[i] + K;
            while(begin <= end)                //用二分查找有没有满足条件的
            {
                int mid = (begin+end)/2;
                if (key[mid] < value)
                    begin = mid + 1;
                else if (key[mid] > value)
                    end = mid - 1;
                else
                {
                    k++;
                    break;
                }
            }
        }
        cout << k << endl;  
    }


  • 相关阅读:
    mp3播放时间
    图片生成视频
    语音合成服务
    360p以上
    实现文字转语音功能
    字幕格式
    音频格式
    视频格式
    微信发朋友圈 -- 群营销素材同步
    FourCC
  • 原文地址:https://www.cnblogs.com/xindoo/p/3595117.html
Copyright © 2011-2022 走看看