假设我们有一个 N x N 阶矩阵。我们必须找到一对元素,它们构成矩阵任意列的最大差值。因此,如果矩阵类似于 -123535967,则输出将为 8。因为该对是来自第 0 列的 (1, 9)。这个想法很简单,我们只需要简单地找到每一列的最大元素和最小元素之间的差值。然后返回最大差值。示例 #include #define N 5 using namespace std; int maxVal(int x, int y){ return (x > y) ? x : y; } int minVal(int x, int y){ return (x > y) ? ... 阅读更多
假设我们有两个整数 N 和 M。我们必须找到通过执行给定操作从 N 到达 M 的最小步数 -将数字 x 乘以 2,因此 x 将为 2*x从数字 x 中减去一,因此数字将为 x – 1如果 N = 4 且 M = 6,则输出将为 2。因此,如果我们对 N 执行操作编号 2,则 N 变为 3,然后对 N 的更新值执行操作编号 1,因此它变为 2 * 3 = 6。因此,最小步数将为… 阅读更多
假设我们有一个数字 n,我们必须找到 n 边凸多边形的对角线条数。因此,如果 n = 5,则对角线条数将为 5。由于这是一个 n 边凸多边形,因此从每个顶点我们可以画出 n – 3 条对角线,留下两侧相邻的顶点和自身。因此,对于 n 个顶点,它将是 n*(n-3),但由于我们考虑了两次,因此它将是 n(n – 3)/2。示例 实时演示 #include using namespace std; int diagonalCount(int n) { return n * (n - 3) / 2; } int main() { int n = 8; cout
假设我们有一个未排序的数组 A 和两个数字 x 和 y。我们必须在 A 中找到 x 和 y 之间的最小距离。数组也可以包含重复元素。因此,如果数组为 A = [2, 5, 3, 5, 4, 4, 2, 3],x = 3 且 y = 2,则 3 和 2 之间的最小距离仅为 1。为了解决这个问题,我们必须遵循以下步骤,从左到右遍历数组,如果找到 x 或 y 则停止。然后将该位置的索引存储到 prev 中。现在遍历… 阅读更多
假设给定一个矩阵。我们必须找到矩阵中的空腔数量。当所有其他周围元素都大于该元素时,一个元素表示为空腔。因此,如果矩阵类似于 -456715456,则输出为 1。我们只需检查周围的元素并做出决定。示例 #include #define MAX 100 using namespace std; int numberOfCavities(int array[][MAX], int n) { int arr[n + 2][n + 2]; int count = 0; for (int i = 0; i < n + 2; i++) { for (int j = 0; j < ... 阅读更多