zoukankan      html  css  js  c++  java
  • Algs4-1.4.11为StaticSETofInts添加一个实列方法howMany()

    1.4.11为StaticSETofInts添加一个实列方法howMany()(请见表1.2.15),找出给定键的出现次数且在最坏情况下所需的运行时间应该和logN成正比。
    答:
    图片
    import java.util.Arrays;
    public class StaticSETofInts
    {
      private int[] a;
      public StaticSETofInts(int[] keys)
      {
        a=new int[keys.length];
        for (int i=0;i<keys.length;i++)
          a[i]=keys[i];
        Arrays.sort(a);
      }
      //
      public boolean contains(int key)
      {return BinarySearch.rank(key,a)!=-1;}
     
      public int howMany(int key)
      {
          int maxIndex=BinarySearch.rankMax(key,a);
          if (maxIndex==-1)
              return 0;
          else
              return 1+maxIndex-BinarySearch.rankMin(key,a);
      }
     
        
      public static void main(String[] args)
      {
        int[] w=In.readInts(args[0]);
        int key=Integer.parseInt(args[1]);
        StaticSETofInts set=new StaticSETofInts(w);
        StdOut.printf("contains key:%d  %d pieces",key,set.howMany(key));
      }
    }
  • 相关阅读:
    codeforces 938 C. Constructing Tests
    codeforces 981 C.Useful Decomposition
    Wannafly 挑战赛16 A 取石子
    codeforces 873 D. Merge Sort(分治)
    lightoj 1158
    lightoj 1226
    lightoj 1382
    lightoj 1283
    hdu 5445 Food Problem (多重背包)
    light 1205
  • 原文地址:https://www.cnblogs.com/longjin2018/p/9854414.html
Copyright © 2011-2022 走看看