[Swift]LeetCode1121. 将数组分红几个递增序列 | Divide Array Into Increasing Sequences

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-ysepeiji-kw.html 
➤若是连接不是山青咏芝的博客园地址,则多是爬取做者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持做者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

Given a non-decreasing array of positive integers nums and an integer K, find out if this array can be divided into one or more disjoint increasing subsequences of length at least Kgit

Example 1:github

Input: nums = [1,2,2,3,3,4,4], K = 3 Output: true Explanation: The array can be divided into the two subsequences [1,2,3,4] and [2,3,4] with lengths at least 3 each. 

Example 2:数组

Input: nums = [5,6,6,7,8], K = 3 Output: false Explanation: There is no way to divide the array using the conditions required. 

Note:微信

  1. 1 <= nums.length <= 10^5
  2. 1 <= K <= nums.length
  3. 1 <= nums[i] <= 10^5

给你一个 非递减 的正整数数组 nums 和整数 K,判断该数组是否能够被分红一个或几个 长度至少 为 K 的 不相交的递增子序列。 ide

示例 1:ui

输入:nums = [1,2,2,3,3,4,4], K = 3
输出:true
解释:
该数组能够分红两个子序列 [1,2,3,4] 和 [2,3,4],每一个子序列的长度都至少是 3。

示例 2:this

输入:nums = [5,6,6,7,8], K = 3
输出:false
解释:
没有办法根据条件来划分数组。 

提示:spa

  1. 1 <= nums.length <= 10^5
  2. 1 <= K <= nums.length
  3. 1 <= nums[i] <= 10^5

2228mscode

 1 class Solution {
 2     func canDivideIntoSubsequences(_ nums: [Int], _ K: Int) -> Bool {
 3         var cal:Int = 0
 4         var a:[Int:Int] = [Int:Int]()
 5         for i in 0..<nums.count
 6         {
 7             a[nums[i],default:0] += 1
 8             if cal < a[nums[i],default:0]
 9             {
10                 cal = a[nums[i],default:0]
11             }
12         }
13         return cal * K <= nums.count
14     }
15 }
相关文章
相关标签/搜索