PHP의 알고리즘 설명 - problema#1.
5510 단어 phpbeginnersalgorithms
문제a
Dada uma lista de números e um número k, retorne true caso existam dois números da lista que somados resultam em k.
예를 들어, [10, 15, 3, 7] e k = 17, 또는 10 + 7 é 17이 되야 합니다.
해결
que queremos achar dois números que somados resultam o mesmo valor de k, podemos thinkar que temos uma expressão de soma simples, como abaixo:
k = a + b
Essa expressão, pode ser reescrita como:
a - k = b
존재하지 않는 PHP ao menos três formas de fazer isso, vou listar todas as três:
1 - A primeira ea que thinko menos ideal é usar array_flip e transformar os valores em chaves, possibilitando o uso do isset em um foreach.
$array = array_flip([10, 15, 3, 7]);
$k = 25;
foreach ($array as $key => $num) {
if (isset($array[$k - $key])) {
echo 'true';
break;
}
}
2 - foreach com um in_array를 사용하려면 array_flip을 수행해야 합니다.
$array = [10, 15, 3, 7];
$k = 25;
foreach ($array as $key => $num) {
if (in_array($k - $key, $array)) {
echo 'true';
}
}
3 - Ou ainda usar uma função que faz uso de loops para verificar os valores.
/**
* @param array $array
* @param int $k
* @return bool
*/
function twosum(array $array, int $k): bool
{
foreach ($array as $key => $value) {
foreach ($array as $key2 => $value2) {
if ($value + $value2 == $k) {
return true;
}
}
}
return false;
}
$array = [10, 15, 3, 7, 2];
$k = 17;
var_dump(twosum($array, $k));
Reference
이 문제에 관하여(PHP의 알고리즘 설명 - problema#1.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/johnnni/desafios-de-algoritmo-em-php-problema1-367n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)