Program.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace BorderUpon_
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. int[] arr = { 1, 2, 3, 5, 7, 8, 9, 15, 18, 19, 24 };
  11. var query = arr.OrderBy(p => p).Aggregate<int, List<List<int>>>(null, (m, n) =>
  12. {
  13. if (m == null) return new List<List<int>>() { new List<int>() { n } };
  14. if (m.Last().Last() != n - 1)
  15. {
  16. m.Add(new List<int>() { n });
  17. }
  18. else
  19. {
  20. m.Last().Add(n);
  21. }
  22. return m;
  23. });
  24. //List<int> aa = new List<int>();
  25. int flag = 0;
  26. for (int i = 0; i < query.Count; i++)
  27. {
  28. if (query[i].Count > 5)
  29. {
  30. flag++;
  31. }
  32. }
  33. //打印结果
  34. //query.ForEach(p =>
  35. //{
  36. // if (p.Count > 5)
  37. // {
  38. // Console.WriteLine("true");
  39. // }
  40. // else
  41. // {
  42. // Console.WriteLine("false");
  43. // }
  44. //});
  45. //Console.Read();
  46. }
  47. private static bool IsBorderUpon(int[] arr)
  48. {
  49. int max_num = 0;
  50. int min_num = 65535;
  51. int zero_count = 0;
  52. for (int i = 0; i < 5; i++)
  53. {
  54. if (arr[i] == 0)
  55. {
  56. zero_count++;
  57. }
  58. else
  59. {
  60. if (arr[i] > max_num)
  61. {
  62. max_num = arr[i];
  63. }
  64. if (arr[i] < min_num)
  65. {
  66. min_num = arr[i];
  67. }
  68. }
  69. }
  70. if (zero_count == 4 || zero_count == 5)
  71. {
  72. return true;
  73. }
  74. else if (zero_count == 0)
  75. {
  76. if ((max_num - min_num) == 4)
  77. {
  78. return true;
  79. }
  80. return false;
  81. }
  82. else
  83. {
  84. if ((max_num - min_num) <= 4)
  85. {
  86. return true;
  87. }
  88. return false;
  89. }
  90. }
  91. }
  92. }