zoukankan      html  css  js  c++  java
  • leetcode2:线性表

    /**********************************************
    Function:input two array and find the kth value
    the run time cost is O(log(m+n))
    **********************************************/
    int find_kth(int A[],int m,int B[],int n,int k)
    {
        if(m > n) return find_kth(B,n,A,m,k);
        if(m == 0) return B[k-1];
        if(k == 1) return min(A[0],B[0]);
    
        int pa = min(k/2,m);
        int pb = k - pa;
    
        if(A[pa-1] < B[pb-1])
            return find_kth(A + pa,m - pa,B,n,k - pa);
        else if(A[pa-1] > B[pb-1])
            return find_kth(A,m,B + pb,n - pb,k - pb);
        else
            return A[pa-1];
    }
    //无序数组最长的连续
    int longestConsecutive(int A[],int len)
    {
        std::unordered_map<int,bool> used;
        for(int i=0;i<len;i++)
            used[A[i]] = false;
    
        int longest = 0;
    
        for(int i=0;i<len;i++)
        {
            if(used[A[i]]) continue;
    
            int length = 1;
    
            for(int j=A[i]+1;used.find(j) != used.end();j++)
            {
                used[j] = true;
                length++;
            }
            for(int j=A[i]-1;used.find(j) !=used.end();j--)
            {
                used[j] = true;
                length++;
            }
    
            longest = max(length,longest);
        }
        return longest;
    }
    
    
    //two Sum
    std::pair<int,int> twoSum(int A[],int len,int target)
    {
        std::pair<int, int> result;
        std::unordered_map<int,int> m;
        for(int i=0;i<len;i++)
        {
            m[A[i]] = i;
        }
    
        for(int i=0;i<len;i++)
        {
            int gap = target - A[i];
            if(m.find(gap) != m.end())
            {
                result.first = i+1;
                result.second = m[gap]+1;
                break;
            }
        }
        return result;
    }
  • 相关阅读:
    手动访问和传参
    子路由
    matlab 不同尺度的矩阵存储
    贝叶斯决策
    vim的使用
    linux另一种安装方式
    Linux中profile、bashrc、bash_profile之间的区别和联系
    emacs编辑器的使用
    关于鼠标不敏感导致自以为ubuntu很怪的问题
    各种可以远程
  • 原文地址:https://www.cnblogs.com/wxquare/p/4802130.html
Copyright © 2011-2022 走看看