假设我们有一个无符号数 x,我们可以很容易地找到它的二进制表示(32 位无符号整数)。我们的任务是反转位。因此,如果二进制表示类似于 00000000000000000000001001110100,则反转的位将为 00101110010000000000000000000000。因此,我们必须返回反转位后的实际数字。要解决这个问题,我们将遵循以下步骤:假设 n 是给定的数字令 answer := 0for i := 31 down to 0:answer := answer OR (n AND i),并将其左移 i 次n := n 右移 1 位后返回 answer示例让我们看看……阅读更多
在这里,我们将看到如何创建一个堆栈,该堆栈可以在恒定时间内执行 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; ...阅读更多