C++程序 打印所有在排序数组中形成等差数列的三元组
给定排序的不同正整数数组,打印所有形成AP (等差数列)的三元组
示例 :
运行三重嵌套循环以生成所有三元组,对于每个三元组,检查是否形成等差数列,这是一个 简单的解决方案 。这种解决方案的时间复杂度是O(n 3 )
使用哈希表是 更好的解决方案 。我们从左到右遍历数组。我们将每个元素视为中间元素,其后的所有元素视为下一个元素。为了搜索前一个元素,我们使用哈希表。
输出:
时间复杂度: O(n 2 )
辅助空间: O(n)
使用相同的思路来解决GP三元组问题,这是一种 高效的解决方案 。从第二个元素开始,将每个元素固定为中间元素,并搜索三元组中的另外两个元素(一个更小,一个更大)。
下面是上述思路的实现。
输出:
时间复杂度: O(n 2 )
辅助空间: O(1)