从两个排序的数组中打印不常见的元素
原文: https://www.geeksforgeeks.org/print-uncommon-elements-two-sorted-arrays/
给定两个不同元素的排序数组,我们需要从两个不常见的数组中打印那些元素。 输出应按排序顺序打印。
示例:
Input : arr1[] = {10, 20, 30}
arr2[] = {20, 25, 30, 40, 50}
Output : 10 25 40 50
We do not print 20 and 30 as these
elements are present in both arrays.
Input : arr1[] = {10, 20, 30}
arr2[] = {40, 50}
Output : 10 20 30 40 50
这个想法基于归并排序的合并过程。 我们遍历两个数组并跳过公共元素。
C++
// C++ program to find uncommon elements of
// two sorted arrays
#include <bits/stdc++.h>
using namespace std;
void printUncommon(int arr1[], int arr2[],
int n1, int n2)
{
int i = 0, j = 0, k = 0;
while (i < n1 && j < n2) {
// If not common, print smaller
if (arr1[i] < arr2[j]) {
cout << arr1[i] << " ";
i++;
k++;
}
else if (arr2[j] < arr1[i]) {
cout << arr2[j] << " ";
k++;
j++;
}
// Skip common element
else {
i++;
j++;
}
}
// printing remaining elements
while (i < n1) {
cout << arr1[i] << " ";
i++;
k++;
}
while (j < n2) {
cout << arr2[j] << " ";
j++;
k++;
}
}
// Driver code
int main()
{
int arr1[] = {10, 20, 30};
int arr2[] = {20, 25, 30, 40, 50};
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int n2 = sizeof(arr2) / sizeof(arr2[0]);
printUncommon(arr1, arr2, n1, n2);
return 0;
}
Java
// Java program to find uncommon elements
// of two sorted arrays
import java.io.*;
class GFG {
static void printUncommon(int arr1[],
int arr2[], int n1, int n2)
{
int i = 0, j = 0, k = 0;
while (i < n1 && j < n2) {
// If not common, print smaller
if (arr1[i] < arr2[j]) {
System.out.print(arr1[i] + " ");
i++;
k++;
}
else if (arr2[j] < arr1[i]) {
System.out.print(arr2[j] + " ");
k++;
j++;
}
// Skip common element
else {
i++;
j++;
}
}
// printing remaining elements
while (i < n1) {
System.out.print(arr1[i] + " ");
i++;
k++;
}
while (j < n2) {
System.out.print(arr2[j] + " ");
j++;
k++;
}
}
// Driver code
public static void main(String[] args)
{
int arr1[] = { 10, 20, 30 };
int arr2[] = { 20, 25, 30, 40, 50 };
int n1 = arr1.length;
int n2 = arr2.length;
printUncommon(arr1, arr2, n1, n2);
}
}
// This code is contributed by vt_m
Python3
# Python 3 program to find uncommon
# elements of two sorted arrays
def printUncommon(arr1, arr2, n1, n2) :
i = 0
j = 0
k = 0
while (i < n1 and j < n2) :
# If not common, print smaller
if (arr1[i] < arr2[j]) :
print( arr1[i] , end= " ")
i = i + 1
k = k + 1
elif (arr2[j] < arr1[i]) :
print( arr2[j] , end= " ")
k = k + 1
j = j + 1
# Skip common element
else :
i = i + 1
j = j + 1
# printing remaining elements
while (i < n1) :
print( arr1[i] , end= " ")
i = i + 1
k = k + 1
while (j < n2) :
print( arr2[j] , end= " ")
j = j + 1
k = k + 1
# Driver code
arr1 = [10, 20, 30]
arr2 = [20, 25, 30, 40, 50]
n1 = len(arr1)
n2 = len(arr2)
printUncommon(arr1, arr2, n1, n2)
# This code is contributed
# by Nikita Tiwari.
C#
// C# program to find uncommon elements
// of two sorted arrays
using System;
class GFG {
static void printUncommon(int []arr1,
int []arr2,
int n1,
int n2)
{
int i = 0, j = 0, k = 0;
while (i < n1 && j < n2)
{
// If not common, print smaller
if (arr1[i] < arr2[j])
{
Console.Write(arr1[i] + " ");
i++;
k++;
}
else if (arr2[j] < arr1[i])
{
Console.Write(arr2[j] + " ");
k++;
j++;
}
// Skip common element
else
{
i++;
j++;
}
}
// printing remaining elements
while (i < n1)
{
Console.Write(arr1[i] + " ");
i++;
k++;
}
while (j < n2)
{
Console.Write(arr2[j] + " ");
j++;
k++;
}
}
// Driver Code
public static void Main()
{
int []arr1 = {10, 20, 30};
int []arr2 = {20, 25, 30, 40, 50};
int n1 = arr1.Length;
int n2 = arr2.Length;
printUncommon(arr1, arr2, n1, n2);
}
}
// This code is contributed by Sam007
PHP
<?php
// PHP program to find uncommon
// elements of two sorted arrays
function printUncommon($arr1, $arr2,
$n1, $n2)
{
$i = 0;
$j = 0;
$k = 0;
while ($i < $n1 && $j < $n2)
{
// If not common, prsmaller
if ($arr1[$i] < $arr2[$j])
{
echo $arr1[$i] . " ";
$i++;
$k++;
}
else if ($arr2[$j] < $arr1[$i])
{
echo $arr2[$j] . " ";
$k++;
$j++;
}
// Skip common element
else
{
$i++;
$j++;
}
}
// printing remaining elements
while ($i < $n1)
{
echo $arr1[$i] . " ";
$i++;
$k++;
}
while ($j < $n2)
{
echo $arr2[$j] . " ";
$j++;
$k++;
}
}
// Driver code
$arr1 = array(10, 20, 30);
$arr2 = array(20, 25, 30, 40, 50);
$n1 = sizeof($arr1) ;
$n2 = sizeof($arr2) ;
printUncommon($arr1, $arr2, $n1, $n2);
// This code is contributed by Anuj_67
?>
输出:
10 25 40 50
版权属于:月萌API www.moonapi.com,转载请注明出处