fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static int [] diff(int [] ar1, int [] ar2)
  11. {
  12. int n1=ar1.length,n2=ar2.length;
  13. int [] res;
  14. int i,k,a,b,c;
  15. int min=ar2[0],max=ar2[n2-1];
  16. boolean flg;
  17.  
  18. int [] tmp=new int [n1];
  19.  
  20. k=0;
  21. for (i=0; i<n1; i++)
  22. {
  23. if ((ar1[i] < min) || (ar1[i] > max))
  24. {
  25. tmp[k++]=ar1[i];
  26. }
  27. else
  28. {
  29. a=0;
  30. b=n2-1;
  31. if (ar2[a]==ar1[i] || ar2[b]==ar1[i])
  32. flg=true;
  33. else
  34. {
  35. flg=false;
  36. while(b-a>1)
  37. {
  38. c=(a+b)/2;
  39. if (ar2[c]==ar1[i])
  40. {
  41. flg=true;
  42. break;
  43. }
  44. if (ar2[c] > ar1[i])
  45. {
  46. b=c;
  47. }
  48. else
  49. {
  50. a=c;
  51. }
  52. }
  53. }
  54. if (! flg) tmp[k++]=ar1[i];
  55. }
  56. }
  57.  
  58. res=new int[k];
  59.  
  60. for (i=0; i<k; i++)
  61. {
  62. res[i]=tmp[i];
  63. }
  64. return res;
  65. }
  66. public static void main (String[] args) throws java.lang.Exception
  67. {
  68. int [] ar1={1,2,3,4,5,6,7,10,15};
  69. int [] ar2={1,7,8,9,10,11,};
  70. int [] r=diff(ar1,ar2);
  71. for(int i=0; i<r.length; i++) System.out.print(r[i]+" ");
  72. }
  73. }
  74.  
Success #stdin #stdout 0.04s 2184192KB
stdin
Standard input is empty
stdout
2 3 4 5 6 15