活跃农民
- 积分
- 360
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2014-7-20
- 最后登录
- 1970-1-1
|
- /*
- * 15 Even Subarray
- * a[] = 6 3 5 8 m = 1
- * 0 odd elements [6] [8]
- * 1 odd elements [6,3] [3] [5] [5,8]
- */
- public static long beautifulSubarrays1(int[] a, int m) {
- List<Integer> list = Arrays.stream(a).mapToObj(Integer::new).collect(Collectors.toList());
- Set<List<Integer>> set = new HashSet<>();
- getSubarrays(list.subList(1, list.size()), m, set, false);
- getSubarrays(list.subList(0, list.size()-1), m, set, true);
- return set.size();
- }
-
- private static void getSubarrays(List<Integer> list, int m, Set<List<Integer>> set, boolean backward) {
- if(list.isEmpty())
- return;
- if(list.stream().filter(e->e%2!=0).count()<=m) {
- //System.out.println(list);
- set.add(list);
- }
- getSubarrays(list.subList(1, list.size()), m, set, false);
- getSubarrays(list.subList(0, list.size()-1), m, set, true);
-
- }
复制代码 |
|