假设我们有一个无符号数 x,我们可以轻松找到它的二进制表示(32 位无符号整数)。我们的任务是反转位。因此,如果二进制表示类似于 00000000000000000000001001110100,则反转后的位将是 00101110010000000000000000000000。因此,我们必须在反转位后返回实际数字要解决此问题,我们将遵循以下步骤 - 假设 n 是给定数字 let answer := 0 for i := 31 down to 0: answer := answer OR (n AND i),并将其向左移动 i 次 n := n 右移 1 位后返回答案示例让我们看看 ... 阅读更多
在这里,我们将了解如何创建一个栈,该栈可以在恒定时间内执行 push、pop、top 和检索最小元素。因此,函数将是 push(x)、pop()、top() 和 getMin()要解决此问题,我们将遵循以下步骤 - 将栈初始化为最小元素为无穷大对于 push 操作 push(x) 如果 x < min,则更新 min := x,将 x 推入栈对于 pop 操作 pop() t := 顶部元素 从栈中删除 t 如果 t 是 min,则 min := 栈的顶部元素对于 top 操作 top() 只需返回顶部元素对于 getMin 操作 getMin() 返回最小元素示例让我们看看以下 ... 阅读更多
在本教程中,我们将讨论一个程序,该程序将转换给定的字符串,使其仅包含不同的字符。为此,我们将提供一个字符串。我们的任务是遍历字符串并用任何不在字符串中出现的随机字符替换所有重复出现的字符。示例实时演示#include using namespace std; //在字符串中收集不同的字符 //int calculate_zero(int i, int occurrences[]){ while (i < 26) { //如果它只出现一次 if (occurrences[i] == 0) return i; ... 阅读更多
在本教程中,我们将讨论一个程序,该程序将通过添加元素将给定数组转换为算术级数。为此,我们将提供一个数组。我们的任务是通过向其中添加单个元素来将给定数组转换为算术级数,并返回添加的元素。如果不可能,则返回 -1。示例实时演示#include using namespace std; //返回要添加的数字 int print_number(int arr[], int n){ sort(arr, arr+n); int d = arr[1] - arr[0]; int numToAdd = -1; bool numAdded = false; for (int i = 2; ... 阅读更多