制作专业网站,网站建设方案实训总结,固原市建设局网站,什么是工具型网站Problem: 6953. 判断是否能拆分数组 文章目录 思路解题方法复杂度Code 思路
针对题目中的以下目标#xff0c;可以转换寻求数组中是否存在前后两个元素之和m的情况#xff0c;如果存在则返回ture#xff0c;如果不存在则返回false。能这样转换的原因是#xff0c;如果… Problem: 6953. 判断是否能拆分数组 文章目录 思路解题方法复杂度Code 思路
针对题目中的以下目标可以转换寻求数组中是否存在前后两个元素之和m的情况如果存在则返回ture如果不存在则返回false。能这样转换的原因是如果存在则这两个元素可以当做最后一次进行以下操作的字数组因为从他向前或向后起组成的数组肯定都m。 在每一步操作中你可以选择一个 长度至少为 2 的现有数组之前步骤的结果 并将其拆分成 2 个子数组而得到的 每个 子数组至少 需要满足以下条件之一 子数组的长度为 1 或者子数组元素之和 大于或等于 m 。 解题方法
首先判断nums数组是否2如果满足则直接返回true然后循环判断数组前后两个元素之和是否m如果满足则直接return true知道循环完毕还没找到则retuen false
复杂度
时间复杂度: O(n)需要循环长度为n的数组空间复杂度: O(1)只需要常数级别的变量
Code public boolean canSplitArray(ListInteger nums, int m) {int len nums.size();if (len 2) {return true;}for (int i 0; i len - 1; i) {int sum nums.get(i) nums.get(i 1);if (sum m) {return true;}}return false;}