假设我们有一个包含一些元素的数组 A。我们需要找到数组中所有不同元素的总和。所以如果 A = [5, 12, 63, 5, 33, 47, 12, 63],则不同元素的总和为 160。一旦考虑过,重复元素将被简单地忽略。我们可以使用无序集合来有效地解决此问题。我们将运行一个单一的 for 循环,并且第一个出现的哪个值,将其添加到 sum 变量中并在哈希表中存储,以便下次我们不会使用此值。示例实时演示#include #include using namespace std; int getNonRepeatSum(int ... 阅读更多
假设我们有一个数字 n,我们需要找到偶数索引二项式系数的总和,例如 $$\left(\begin{array}{c}n\ 0\end{array}\right)+\left(\begin{array}{c}n\ 2\end{array}\right)+\left(\begin{array}{c}n\ 4\end{array}\right)+\left(\begin{array}{c}n\ 6\end{array}\right)+...\left(\begin{array}{c}4\ 0\end{array}\right)+\left(\begin{array}{c}4\ 2\end{array}\right)+\left(\begin{array}{c}4\ 4\end{array}\right)++=1+6+1=8$$所以这里我们将找到所有二项式系数,然后只找到偶数索引值的总和。示例实时演示#include using namespace std; int evenIndexedTermSum(int n) { int coeff[n + 1][n + 1]; for (int i = 0; i 阅读更多
假设我们有一个二进制字符串 bin。然后对其应用 n 次迭代,在每次迭代中 0 变为 01,1 变为 10,然后在第 n 次迭代后的字符串中的第 i 个索引字符。所以如果二进制字符串是 101,并且 n = 2,i = 3,所以在第一次迭代后它将是 100110,在下次迭代中,它将是 100101101001,所以第 i 个索引包含 1。要解决此问题,我们需要遵循以下步骤-运行 n 次循环,并在每次迭代中对字符串运行另一个循环转换二进制字符串的每个字符,并 ... 阅读更多
假设我们有一个二维平面中的点 P 和一条直线的方程,任务是找到从 P 到直线的垂足。直线的方程是 ax + by + c = 0。通过 P 且垂直于直线的直线方程。通过 P 和 Q 的直线方程将为 ay – bx + d = 0。此外 P(x1, y1),和 Q(x2, y2),所以我们将 P 的坐标代入方程。ay 1−bx 1+d=0,所以 d=bx1−ay 1Q 也是给定直线和直线的交点 ... 阅读更多
假设我们有一个包含 N 个正整数的数组,以及另一个变量 K。我们需要找到正好 m 个元素,使得任意两个元素之间的差等于 k。所以如果数组是 A = [4, 7, 10, 6, 9],并且 k = 3 且 m = 3,则输出将为“yes”。因为我们可以找到三个元素,如 4、7、10。要解决此问题,我们需要跟踪元素除以 k 时的余数。现在创建一个大小为 k 的多维数组 rem[][],其索引表示余数,以及元素 ... 阅读更多
假设我们有两个数组 A 和 B,数组 A 有 n 个元素。第二个数组 B 包含 A 的所有元素,但它们是洗牌的,并且删除了一个元素。我们需要找到缺失的元素。所以如果 A = [4, 8, 1, 3, 7],并且 B = [7, 4, 3, 1],则输出为 8。这可以使用 XOR 技巧来解决。每个元素的组合出现次数为两次,一次在 A 中,另一次在 B 中,除了一个元素,该元素仅在 A 中出现一次。众所周知,x XOR x = ... 阅读更多