[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 }
相關文章
相關標籤/搜索