在本教程中,我们将讨论一个程序,该程序用于通过最小更改将数组转换为严格递增的整数数组。为此,我们将提供一个数组。我们的任务是通过对元素进行最少的更改,使数组的元素严格按递增顺序排列。示例 实时演示#include using namespace std; //计算所需的更改次数 int remove_min(int arr[], int n){ int LIS[n], len = 0; for (int i = 0; i < n; i++) LIS[i] = 1; for (int i = 1; i < n; i++) { ... 阅读更多
在本教程中,我们将讨论一个程序,该程序用于使用追加和删除最后一个操作将一个字符串转换为另一个字符串。为此,我们将提供两个字符串。我们的任务是计算是否可以通过执行 k 次追加和删除最后一个元素的操作将第一个字符串转换为第二个字符串。示例#include using namespace std; //检查字符串之间转换是否可能 bool if_convert(string str1, string str2, int k){ if ((str1.length() + str2.length()) < k) return true; //查找两个字符串的公共长度 int commonLength = 0; for (int i = ... 阅读更多
在本教程中,我们将讨论一个程序,该程序用于使用贾维斯算法查找给定点集的凸包。凸包是包含所有给定点(边界上或内部)的最小多边形凸图形。在贾维斯算法中,我们选择最左边的点,并按顺时针方向依次包裹点。示例 实时演示#include using namespace std; //点的结构体 struct Point{ int x, y; }; //计算点的相对位置 int cal_orientation(Point p, Point q, Point r){ int val = (q.y - p.y) * (r.x - q.x) - ... 阅读更多
在本教程中,我们将讨论一个程序,该程序用于将秒转换为天、小时、分钟和秒。为此,我们将提供一个随机的秒数。我们的任务是分别将其转换为正确的天数、小时数、分钟数和秒数。示例 实时演示#include using namespace std; //转换为正确的格式 void convert_decimal(int n) { int day = n / (24 * 3600); n = n % (24 * 3600); int hour = n / 3600; n %= 3600; int minutes = n / 60 ; n %= 60; int seconds = n; cout
关于给定的号码,显示或打印所有可能的字符串组合,这些组合可以用来在手机上拨打给定的号码,并借助以下规范。在给定的手机中,我们可以拨打 2 实现 A 或 B 或 C,3 实现 D 或 E 或 F,……………….8 实现 T 或 U 或 V,9 实现 W 或 X 或 Y 或 Z,1 仅实现 10 实现 0。例如,如果 89 是给定的电话号码,则程序应打印 TW、TX、TY、TZ、UW、UX、UY、UZ、VW、VX、VY、VZ#include #include ... 阅读更多
在本教程中,我们将讨论一个程序,该程序用于查找给定点位于内部的矩形的坐标。为此,我们将提供一些坐标点。我们的任务是找到最小的矩形,使得所有点都位于其内部,并且其边应平行于坐标轴。示例 实时演示#include using namespace std; //计算最小矩形的坐标 void print_rectangle(int X[], int Y[], int n){ //查找最小和最大点 int Xmax = *max_element(X, X + n); int Xmin = *min_element(X, X + n); int Ymax = *max_element(Y, ... 阅读更多