• Algs4-1.4.15快速3-sum


    1.4.15快速3-sum。作为热身,使用一个线性级别的算法(而非基于二分查找的线性对数级别的算法)实现TwoSumFaster来计算已排序的数组中和为0的整数对的数量。用相同的思想为3-sum问题给出一个平方级别的算法。
    答:
    import java.util.Arrays;
    public class TwoSumFaster
    {
        public static int count(int[] a)
        {
            int i=0;
            int j=a.length-1;
            int cnt=0;
            int sum;
            while(i<j)
            {
                sum=a[i]+a[j];
                if(sum==0)
                {
                   // StdOut.printf("a[%d]=%d,a[%d]=%d ",i,j,a[i],a[j]);
                    i++;
                    j--;
                    cnt++;
                }
                else if(sum>0)
                    j--;
                else
                    i++;
            }//end while
            return cnt;
        }//end count
       
        public static void main(String[] args)
        {
            int[] a=In.readInts(args[0]);
            Arrays.sort(a);
            StdOut.println(count(a));
        }
    }

    /////////////////////////////


    import java.util.Arrays;
    public class ThreeSumFaster
    {
        public static int count(int[] a)
        {
            int j;
            int k;
            int cnt=0;
            int sum;
            for(int i=0;i<a.length;i++)
            {
                j=i+1;
                k=a.length-1;
                while(j<k)
               {
                  sum=a[i]+a[j]+a[k];
                  if(sum==0)
                   {
                     j++;
                     k--;
                     cnt++;
                  }
                  else if(sum>0)
                     k--;
                  else
                     j++;
               }//end while
            }//end for
            return cnt;
        }//end count
       
        public static void main(String[] args)
        {
            int[] a=In.readInts(args[0]);
            Arrays.sort(a);
            StdOut.println(count(a));
        }
    }


  • 相关阅读:
    Java框架第二次课
    知识扩展1——最大似然估计
    知识扩展2——熵 ,KL散度,交叉熵,JS散度,Wasserstein 距离(EarthMover距离)
    知识扩展3——广义线性模型GLM
    3 逻辑回归
    朴素贝叶斯
    GAN 的后序
    mysql 多个字段字符串合并成一个字段
    qt离线下载
    “用户”,你凭什么说改框架?
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854428.html
Copyright © 2020-2023  润新知