zoukankan      html  css  js  c++  java
  • Leetcode 659.分割数组为连续子序列

    分割数组为连续子序列

    输入一个按升序排序的整数数组(可能包含重复数字),你需要将它们分割成几个子序列,其中每个子序列至少包含三个连续整数。返回你是否能做出这样的分割?

       

    示例 1:

    输入: [1,2,3,3,4,5]

    输出: True

    解释:

    你可以分割出这样两个连续子序列 :

    1, 2, 3

    3, 4, 5

       

    示例 2:

    输入: [1,2,3,3,4,4,5,5]

    输出: True

    解释:

    你可以分割出这样两个连续子序列 :

    1, 2, 3, 4, 5

    3, 4, 5

       

    示例 3:

    输入: [1,2,3,4,4,5]

    输出: False

       

    提示:

    1. 输入的数组长度范围为 [1, 10000]

     

     1 class Solution {
     2     public boolean isPossible(int[] nums) {
     3         Counter count = new Counter();
     4         Counter tails = new Counter();
     5         for (int x: nums) count.add(x, 1);
     6 
     7         for (int x: nums) {
     8             if (count.get(x) == 0) {
     9                 continue;
    10             } else if (tails.get(x) > 0) {
    11                 tails.add(x, -1);
    12                 tails.add(x+1, 1);
    13             } else if (count.get(x+1) > 0 && count.get(x+2) > 0) {
    14                 count.add(x+1, -1);
    15                 count.add(x+2, -1);
    16                 tails.add(x+3, 1);
    17             } else {
    18                 return false;
    19             }
    20             count.add(x, -1);
    21         }
    22         return true;
    23     }
    24 }
    25 
    26 class Counter extends HashMap<Integer, Integer> {
    27     public int get(int k) {
    28         return containsKey(k) ? super.get(k) : 0;
    29     }
    30 
    31     public void add(int k, int v) {
    32         put(k, get(k) + v);
    33     }
    34 }

     

     

     

  • 相关阅读:
    MySQL Delete 后,如何快速释放磁盘空间
    浅谈MySQl 主从复制
    MySQL 5.6,5.7 基于Shell 的一键安装
    【MySQL 5.7 】从库1032 报错处理
    633. Sum of Square Numbers
    find a balance point in an array
    Longest Common Prefix
    cubic root
    41. First Missing Positive
    build tree with balanced parenthesis
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10394910.html
Copyright © 2011-2022 走看看