让我们看看完成程序的步骤。初始化数组。初始化大小为 n 的 max_sum 数组。找到每个索引的最大和并将其存储在 max_sum 数组中。计算所有元素的和并将其存储在变量 sum 中。编写一个循环,从 i = k 迭代到 n。将 a[i] - a[i - k] 添加到 sum 中。使用 result、sum 的最大值更新 result。使用 result、sum + max_sum[i - k] 的最大值更新 result。示例让我们看看代码。实时演示 #include using namespace std; int getMaxSum(int a[], int n, int k) { int maxSum[n]; maxSum[0] = a[0]; int ... 阅读更多
让我们看看完成程序的步骤。初始化数组。将数组中的所有零都设为 -1。使用一个空映射来存储之前的索引。将 sum 初始化为 0,最大长度初始化为 0,结束索引初始化为 -1。编写一个循环,迭代到 n。将当前元素添加到 sum 中。如果 sum 等于 0。使用 i + 1 更新最大长度。并将结束索引更新为 i。如果 sum 存在于之前的 sums 映射中,并且 i - previousIndexes[sum] 大于最大长度。更新最大长度和结束索引。否则将 sum 添加到之前的索引映射中。打印起始索引 ... 阅读更多
在本教程中,我们将编写一个程序来查找和大于 k 的最大子数组。让我们看看解决问题的步骤。初始化数组。迭代数组并在向量中存储每个索引处的和以及索引。根据和和索引对上述和进行排序。初始化一个数组来存储索引。编写一个循环,迭代到 n。使用上述索引数组的最小索引和之前的 sums 数组索引更新值。将 sum 初始化为 0。编写一个循环,迭代到 n。将当前元素添加到 sum 中。如果 sum 大于 k。最大子数组 ... 阅读更多
在本教程中,我们将编写一个程序来查找通过一次交换获得的最大小于给定数字 n 的数字。让我们看看解决问题的步骤。初始化数字 n。从字符串末尾迭代并查找大于其下一个数字的数字的索引。将其存储在一个变量中。找到它后立即中断循环。从字符串末尾到上述索引迭代该数字。找到小于上述索引数字且在所有数字中最大的数字的索引... 阅读更多
在本教程中,我们将编写一个程序来查找按位或等于给定数字 n 的最大集合。让我们看看解决问题的步骤。初始化数字 n。编写一个循环,从 0 迭代到 n。如果 i | n 等于 n,则将 i 添加到结果中。返回结果。示例让我们看看代码。实时演示 #include using namespace std; void printBitWiseOrSet(int n) { vector v; for (int i = 0; i
在本教程中,我们将编写一个程序来查找最多 k 次交换后的最大排列。让我们看看解决问题的步骤。初始化数组。初始化一个大小为 n + 1 的数组来存储索引。迭代数组并将每个元素的索引存储在 position 数组中。编写一个循环,迭代到 n 并且 k 大于 0。将 n - i 元素的位置存储在一个临时变量中。使用 position[n - i] 更新当前元素 arr[i] 的位置。使用当前索引 i 更新位置 position[n - i]。将当前元素 arr[i] 与 ... 阅读更多
在本教程中,我们将编写一个程序来查找小于 n 的具有素数位数的最大数字。让我们看看解决问题的步骤。编写一个循环,从 0 迭代到 n。如果当前数字不是素数。当数字小于 2 时,递减 i 值。如果 i 值为负,则将其设为 0。使用下一个最小的素数位数更新当前索引值。从下一个索引开始,将每个数字都设为 7。返回 n。示例让我们看看代码。实时演示 #include using namespace std; bool isPrime(char c) { return c == '2' || ... 阅读更多