当前位置:   article > 正文

左边的数都小于等于它,右边的数都大于等于它_所有左边小于他,所有右边大于他

所有左边小于他,所有右边大于他
  1. /**
  2. * 一个int数组, 比如 array[],里面数据无任何限制,要求求出所有这样的数array[i],
  3. * 其左边的数都小于等于它,右边的数都大于等于它。
  4. * 数组第一个和最后一个不合要求。
  5. *
  6. * 要求:
  7. * 只用一个额外数组和少量其它空间实现。
  8. *
  9. * 思路类似MaxRetangle
  10. *
  11. *
  12. */
  13. public class SpecialElements {
  14. public static void find(int[] a){
  15. int[] b = new int[a.length];
  16. int minRight = a[a.length-1];
  17. for(int i=a.length-2; i>=0; i--){
  18. if(a[i+1] < minRight){
  19. minRight = a[i+1];
  20. }
  21. b[i] = minRight;
  22. }
  23. int maxLeft = a[0];
  24. for(int j=1; j<a.length-1; j++){
  25. if(a[j] >= maxLeft && a[j] <= b[j]){
  26. System.out.println(a[j]);
  27. }
  28. if(a[j] > maxLeft){
  29. maxLeft = a[j];
  30. }
  31. }
  32. }
  33. /**
  34. * @param args
  35. */
  36. public static void main(String[] args) {
  37. int[] a = {7, 10, 2, 6, 13,18, 19,17,22, 32};
  38. SpecialElements.find(a);
  39. }
  40. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/227684
推荐阅读
相关标签
  

闽ICP备14008679号