[Swift]LeetCode1121. 将数组分成几个递增序列 | Divide Array Into Increasing Sequences
2019-07-13 10:00
1356 查看
原文链接:http://www.cnblogs.com/strengthen/p/11179565.html
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/11179565.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Given a non-decreasing array of positive integers
numsand an integer
K, find out if this array can be divided into one or more disjoint increasing subsequences of length at least
K.
Example 1:
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 <= nums.length <= 10^5
1 <= K <= nums.length
1 <= nums[i] <= 10^5
给你一个 非递减 的正整数数组
nums和整数
K,判断该数组是否可以被分成一个或几个 长度至少 为
K的 不相交的递增子序列。
示例 1:
输入:nums = [1,2,2,3,3,4,4], K = 3 输出:true 解释: 该数组可以分成两个子序列 [1,2,3,4] 和 [2,3,4],每个子序列的长度都至少是 3。
示例 2:
输入:nums = [5,6,6,7,8], K = 3 输出:false 解释: 没有办法根据条件来划分数组。
提示:
1 <= nums.length <= 10^5
1 <= K <= nums.length
1 <= nums[i] <= 10^5
2228ms
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 }
转载于:https://www.cnblogs.com/strengthen/p/11179565.html
相关文章推荐
- [LeetCode] Minimum Swaps To Make Sequences Increasing 使得序列递增的最小交换
- [LeetCode] Longest Increasing Subsequence 最长递增子序列的长度
- leetcode--中级算法--数组和字符串--递增的三元子序列(JavaScript)
- [LeetCode] Split Array into Consecutive Subsequences 将数组分割成连续子序列
- LeetCode 674. Longest Continuous Increasing Subsequence (最长连续递增序列)
- LeetCode 329. Longest Increasing Path in a Matrix 在二维数组中寻找最长递增序列
- [LeetCode] Number of Longest Increasing Subsequence 最长递增序列的个数
- 数组中的最大递增子序列(Longest Increasing Subsequence<LIS>)
- [LeetCode] 674. Longest Continuous Increasing Subsequence 最长连续递增序列
- [LeetCode] Longest Continuous Increasing Subsequence 最长连续递增序列
- leetcode 329. Longest Increasing Path in a Matrix 矩阵中寻找最长递增序列 + 一个典型的深度优先遍历DFS的做法
- 用python写leetcode【7】 --两个数组的交集 II(350)、递增的三元子序列(334)
- leetcode 674. Longest Continuous Increasing Subsequence 最长递增连续子序列
- Convert Sorted Array to Binary Search Tree (递增数组建高度平衡的二叉查找树)【leetcode】
- [LeetCode] Increasing Triplet Subsequence 递增的三元子序列
- leetcode 659. Split Array into Consecutive Subsequences 分割连续序列 + 贪心算法
- [leetcode]最长递增序列
- Rotated Array 旋转数组的解题报告--leetcode
- 最长递增子序列 (Longest Increasing Subsequence)
- [LeetCode] 384. Shuffle an Array 数组洗牌