solution_659
来源:互联网 发布:数据库查询语句讲解 编辑:程序博客网 时间:2024/06/07 17:23
LeetCode problem 659 description
You are given an integer array sorted in ascending order (may contain duplicates), you need to split them into several subsequences, where each subsequences consist of at least 3 consecutive integers. Return whether you can make such a split.
Example 1:
Input: [1,2,3,3,4,5]Output: TrueExplanation:You can split them into two consecutive subsequences : 1, 2, 33, 4, 5
Example 2:
Input: [1,2,3,3,4,4,5,5]Output: TrueExplanation:You can split them into two consecutive subsequences : 1, 2, 3, 4, 53, 4, 5
Example 3:
Input: [1,2,3,4,4,5]Output: False
Note:
- The length of the input is in range of [1, 10000]
Solution
I just use a simple method to work it out. At first I record the frequency that each number appearing. Then I record the frequency of the last number of the consecutive subsequence. Here is the code:
#include <iostream>#include <vector>#include <unordered_map>using namespace std;class Solution {public: bool isPossible (vector<int> & nums);};bool Solution::isPossible(vector<int> & nums) { unordered_map<int, int> frequency, tails; //Caculating the frequency of the numbers for (int i : nums) { frequency[i]++; } for (int i : nums) { if (frequency[i] == 0) { continue; } frequency[i]--; //This means that number i is the tail of one subsequence with number //i - 1 as the tail. if (tails[i - 1] > 0) { tails[i - 1]--; tails[i]++; } //This means that number i is the first number of the consecutive //subsequence with length not less than 3 else if (frequency[i + 1] > 0 && frequency[i + 2] > 0){ tails[i + 2]++; frequency[i + 1]--; frequency[i + 2]--; } else { return false; } } return true;}
阅读全文
0 0
- solution_659
- Ubuntu16.04安装MATLAB R2016b
- 浅谈线段树
- 对于实型数据和整型数据
- linux 批量修改文件名后缀名命令rename
- 解决AndroidStudio 导入项目在 Building gradle project info 一直卡住
- solution_659
- Mysql 利用group by 分组排序
- c#同时上传文件和参数
- pwnable.tw记录之applestore
- GIT学习笔记(5)
- Java高级篇-9-继承
- 30天了解30种技术系列(14)----Docker集群管理利器Swarm
- okhttp源码解析
- RecycleView深入理解系列之ItemDecoration