假设我们有一个方阵,我们的任务是检查该矩阵是否为汉克尔矩阵。汉克尔矩阵是一个方阵,其中从左到右的每个递增的斜对角线元素都是常数。假设一个矩阵如下所示:-1234523456345674567856789要检查矩阵是否为汉克尔矩阵,我们必须检查mat[i, j]是否等于ai+j。ai+j可以定义为:$$a_{i+j}=\begin{cases}mat[i+j, 0]< n\mat[i+j-n+1, n-1]otherwise\end{cases}$$示例 在线演示#include #define N 5 using namespace std; bool isHankelMat(int mat[N][N], int n) { for (int i = 0; i < n; i++) { ... 阅读更多
假设我们有一个二进制字符串,另一个整数 k。我们必须检查字符串是否包含 k 位二进制的所有排列。假设一个字符串是“11001”,如果 K = 2,则它必须具有 k 位数字的所有排列。(00, 01, 10, 11),给定字符串具有所有排列。所以这是一个有效的字符串。通过获取二进制字符串和 k 的值,我们必须检查二进制序列是否匹配。二进制序列的大小为 k。因此,将有 2k 个不同的二进制排列。我们… 阅读更多
假设我们有一个大小为 N x M 的二维数组。任务是检查我们是否可以从每一行选择一个数字,以使这些元素的异或值非零或大于 0。假设一个矩阵如下所示:-77710107如果我们执行异或运算,答案将是非零的,因为两行的最后一个元素除外分别是 7 和 10。为了解决这个问题,解决方案将非常简单。首先检查每一行的第一列元素的异或运算结果是否为 0。如果不是 0,则… 阅读更多