假设我们有两个整数 N 和 M。我们必须找到从 N 到达 M 的最小步数,通过执行给定的操作:将数字 x 乘以 2,所以 x 将变成 2*x从数字 x 中减去 1,所以数字将变成 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 < ... 阅读更多