<?php
class Matrix{
/**
•@param 2D array $matrix
•
•Prints distinct elements common to all rows of the matrix */
public static function getDistinctElementsCommonToAllRows($matrix){
// A hash map to store count of elements
$hashmap = array();
$selectedHash = array();
$rows = count($matrix);
$cols = count($matrix[0]);
for ($i = 0; $i < $rows; $i++) {
// Increment the count of first
// element of the row
if(array_key_exists($matrix[$i][0],$hashmap)){
$hashmap[$matrix[$i][0]] = $i+1;
}
// Starting from the second element
// of the current row
for ($j = 1; $j < $cols; $j++) {
// If current element is different from
// the previous element i.e. it is appearing
// for the first time in the current row
if(array_key_exists($matrix[$i][$j],$hashmap)){
if ($matrix[$i][$j] !== $matrix[$i][$j - 1]){
$hashmap[$matrix[$i][$j]] = $i+1;
}
}else{
if ($matrix[$i][$j] !== $matrix[$i][$j - 1]){
$hashmap[$matrix[$i][$j]] = $i;
}
}
}
}
foreach($hashmap as $key => $val){
if($val == $rows){
$selectedHash[] = $key;
}
}
return $selectedHash;
}
}
$mat1 = [[2, 1, 4, 3],[1, 2, 3, 2],[3, 6, 2, 3],[5, 2, 5, 3]];
$mat2 = [[12, 1, 14, 3, 16],[14, 2, 1, 3, 35],[14, 1, 14, 3, 11],[14, 25, 3, 2, 1],[1, 18, 3, 21, 14]];
print_r (Matrix::getDistinctElementsCommonToAllRows($mat1));
Print_r('<br>');
print_r (Matrix::getDistinctElementsCommonToAllRows($mat2));
<?php interface LRUCache{ /** •@param string $key •@param string $value •@return bool $result • •Stores value against the key in the cache */ public function insertIntoCache($key,$value); /** •@param string $key •@return string $value •Gets the value of a key from the cache */ public function getFromCache($key); /** Purge the entire cache */ public function purgeCache(); /** •@return int $count •Gets the number of successful cache hits so far */ public function allCacheHits(); /** •@return int $count •Gets the number of unsuccessful cache hits so far **/ public function allCacheMissed(); } class Cache implements LRUCache{ // int the max number of elements the cache supports private $capacity; // Array representing a naive hashmap (TODO needs to pass t
Comments
Post a Comment