让我们看看完成程序的步骤。初始化数组。初始化大小为 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,max length 初始化为 0,ending index 初始化为 -1。编写一个循环,直到 n。将当前元素添加到 sum 中。如果 sum 等于 0。使用 i + 1 更新 max length。并将 ending index 更新为 i。如果 sum 出现在先前的 sum 映射中并且 i - previousIndexes[sum] 大于 max length。更新 max length 和 ending index。否则将 sum 添加到先前的索引映射中。打印起始索引 ... 阅读更多
在本教程中,我们将编写一个程序来查找和大于 k 的最大子数组。让我们看看解决问题的步骤。初始化数组。迭代数组并在向量中存储每个索引处的和以及索引。根据和和索引对上述和进行排序。初始化一个数组来存储索引。编写一个循环,直到 n。使用上面索引数组的最小索引和先前和数组索引更新值。将 sum 初始化为 0。编写一个循环,直到 n。将当前元素添加到 sum 中。如果 sum 大于 k。最大子数组 ... 阅读更多
在本教程中,我们将编写一个程序来查找按位或等于给定数字 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 的数组来存储索引。迭代数组并在位置数组中存储每个元素的索引。编写一个循环,直到 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' || ... 阅读更多