namespace set;
/**
* 集合接口
* @package set
*/
interface Set
{
function add($val);
function remove($val);
function contains($val);
function isEmpty();
function getSize();
}
namespace set;
use bst\BST;
/**
* 集合類 ,使用二分搜索樹實現集合
* @package set
*/
class BSTSet implements Set{
/**
* 二分搜索樹對象
* @var BST
*/
public $bst;
public function __construct()
{
$this->bst = new BST();
}
public function isEmpty()
{
return $this->bst->isEmpty();
}
public function getSize()
{
return $this->bst->getSize();
}
public function add($val)
{
$this->bst->add($val);
}
public function remove($val)
{
$this->bst->remove($val);
}
public function contains($val)
{
return $this->bst->contains($val);
}
}
複製代碼
測試用例數組
給定兩個數組,編寫一個函數來計算它們的交集。bash
示例 1:函數
輸入: nums1 = [1,2,2,1], nums2 = [2,2] 輸出: [2]測試
示例 2:ui
輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出: [9,4]this
說明:spa
輸出結果中的每一個元素必定是惟一的。 咱們能夠不考慮輸出結果的順序。code
$nums1 = [4,9,5];
$nums2 = [9,4,9,8,4];
$set = new set\BSTSet();
foreach ($nums1 as $v)
$set->add($v);
$arr=[];
foreach ($nums2 as $v){
if($set->contains($v)){
$arr[]= $v;
$set->remove($v);
}
}
複製代碼