ALLAN AVELARTechnology Solutions
🍰Boa Tarde,<username class="jsx-1036735364">Visitante</username>!Seja bem vindo ao meu website!Progressive Web App (PWA)Instalar em seu dispositivoChromecast Controlsstatus: not playing or showingVolumeDown50%VolumeUpPlayPausestoppedStopResetFullscreenExpandAcesso RestritoConectar / RegistrarEntre com suas credenciais de acessoEspaço de AcessosSolicite seu Código de AcessoDados CadastraisSeus dados pessoais e de acessoProjetos / ServiçosSeu histórico de contrataçõesProdutos / DownloadsSeu histórico de aquisiçõesChromecast AppsSeus contratos de transmissãoCréditos / ComprasSeu saldo e histórico de créditosEspaço de AcessosSeus acessos à conteúdos restritosNotificaçõesNotificações habilitadas para vocêDesconectarDesconectar seu usuárioConteúdos disponíveisHomeSobre Mim6Resumo PessoalUm pouco de como tudo começouResumo ProfissionalUm pouco da minha tragetóriaMetodologia de TrabalhoComo eu faço acontecerMemórias PessoaisConteúdo RestritoCurriculum VitaeConteúdo RestritoViagens & FotosConteúdo RestritoÁreas de Atuação10Todos os meus serviçosResumo de todas as áreasCTO as a ServiceTenha um C-Level de meio períodoCorporate ArchitectureAgilidade e tecnologia como filosofiaSoftware & TechnologyEm desenvolvimentoFrontend DevelopmentEm desenvolvimentoBackend DevelopmentEm desenvolvimentoStrategy & ConsultingEm desenvolvimentoPlatform & DevSecOpsEm desenvolvimentoCustomer ExperienceEm desenvolvimentoAgile CultureEm desenvolvimentoHub de Inovação6Cultura de InovaçãoVantagens e como implementarDistributed LT & BlockchainEm desenvolvimentoData Science & AnalyticsEm desenvolvimentoCybersecurity PlatformEm desenvolvimentoIntelligent AutomationEm desenvolvimentoAI & Machine LearningEm desenvolvimentoCursos & Treinamentos9Distributed LT & BlockchainEm desenvolvimentoCybersecurity PlatformEm desenvolvimentoIntelligent AutomationEm desenvolvimentoFrontend DevelopmentEm desenvolvimentoBackend DevelopmentEm desenvolvimentoPlatform & DevSecOpsEm desenvolvimentoAI & Machine LearningEm desenvolvimentoProgressive Web AppsEm desenvolvimentoAgile CultureEm desenvolvimentoFale ComigoPROJETOS REALIZADOSTodos os meus projetosResumo de todas as áreasInstituições Financeiras3Banco Santander TottaConteúdo RestritoBanco Santander BrasilConteúdo RestritoBanco Safra S.AConteúdo RestritoWeb3 / Blockchain15Bitcoin (BTC)Conteúdo RestritoEthereum VM (ETH)Conteúdo RestritoRipple (XRP)Conteúdo RestritoHyperledger.orgConteúdo RestritoInternet ComputerConteúdo RestritoStarknet (Cairo)Conteúdo RestritoPolkadot (DOT)Conteúdo RestritoDeFi DashboardsConteúdo RestritoToken MarketplacesConteúdo RestritoCrypto CheckoutsConteúdo RestritoCold / Hot WalletsConteúdo RestritoWallet ConnectorsConteúdo RestritoNon Fungible Tokens (NFT)Conteúdo RestritoDescentralized Identities (DID)Conteúdo RestritoDescentralized Organizations (DAO)Conteúdo RestritoProjetos Antigos29TIM | Unidade de Resposta AudívelAdobe Flex, Actionscript 3, Java, SpringACS | Follow EnergyAngularjs, HTML5, CSS3, C#, REST APIACS | Gateway CE50Angularjs, HTML5, CSS3, C, C#, LUASKY | Selinho de NatalActionscript 3, .NET, REST API, JSONIntel | Futuro de PresenteActionscript 3, .NET, REST API, JSONNestlé | Baú de DiversõesAS 3, .NET, REST, Facebook OpengraphMarlboro | Red RacingAdobe Flash, Actionscript 3, JSONHP | Cartucho PirataAdobe Flash, Actionscript 3, REST APIHP | Youtube StoreAdobe Flash, AS3, YouTube Data APICasas Bahia | BahianinhoActionscript 3, .NET, REST API, JSONAdria | TortinhasAdobe Flash, Actionscript 3, PHPUniverso Online | UOL FinanceActionscript 3, REST API, JSONUniverso Online | UOL MaisActionscript 3, REST API, JSONChevrolet | CaptivaActionscript 3, PHP, MYSQLGafisa | Edifício ColaborativoAdobe Flash, Actionscript 3Pão de Açucar | Sommeliers ClubAdobe Flash, Actionscript 3Pão de Açucar | Desafio ColeçõesAdobe Flash, Actionscript 3Antarctica | Circuito OriginalMacromedia Flash, Actionscript 2, XMLNestlé | Nescau 2.0Macromedia Flash, Actionscript 2, XMLSchin RefrigerantesActionscript 2, FMS 2, PHP, MYSQLMercedes-Benz | SLK 2005Actionscript 2, XMLMercedes-Benz | Classe CActionscript 2, XMLMercedes-Benz | Classe AActionscript 2, XMLMercedes Benz | SprinterActionscript 2, XMLMercedes Benz | Motores EletrônicosActionscript 2, XMLBanda NX ZeroMacromedia Flash, Actionscript 2Lew´lara TBWAActionscript 2, PHP, MYSQLMaison CriolaActionscript 2, PHP, MYSQLBondage MusicActionscript 2, PHP, MYSQLBlog PostsHackerRank5Sock MerchantWarm-Up ChallengesCounting ValleysWarm-Up ChallengesRepeated StringWarm-Up ChallengesJumping On CloudsWarm-Up ChallengesLeft RotationWarm-Up ChallengesLegal TermsTermos e CondiçõesPolítica de PrivacidadeIsenção de Responsabilidade
Usuário / SenhaBlockchainEsqueceu sua senha?EntrarNão tem uma conta? Veja uma demostração!
🚀 Fevereiro 23, 2018 ♻ Outubro 19, 2018reading 6 minutos de leitura

Warm-up Challenges ⚡ Left Rotation

Estou postando sobre as minhas respostas aos desafios do HackerRank como forma de melhorar meu aprendizado, reforçar meu conhecimento e estabelecer uma compreensão dos conceitos abordados. Se eu ajudar alguém compartilhando ao longo do caminho, melhor ainda!

Left Rotation é um dos desafios de "Arrays" com a dificuldade 'EASY'.


Qual o desafio?

Uma operação de rotação à esquerda em uma matriz desloca cada elemento da matriz para a esquerda. Por exemplo, se duas rotações à esquerda forem realizadas na matriz [1, 2, 3, 4, 5], a matriz se tornará [3, 4, 5, 1, 2].

Dada uma matriz a de n números inteiros e um número, d, de rotações a esquerda na matriz. Retorne o array atualizado para ser impresso como uma única linha de inteiros separados por espaços.

O que temos que fazer?

Uma função que retorne uma matriz de inteiros após as rotações esquerdas terem sido realizadas.

Parâmetros
  • a = uma matriz de inteiros
  • d = número de rotações
Limites
  • 1 <= n <= 10 ^ 5
  • 1 <= d <= n
  • 1 <= a [i] <= 10 ^ 6

Sample Input

1 2 3 4 5
4

Sample Output

5 1 2 3 4

Solução

function leftRotation(a, d) {
	return a.concat(a.splice(0, d));
}

Lógica

Toda a lógica está contida nesta única linha, mas podemos dividi-la em três partes:

Primeiro usei .splice() para obter os primeiros d itens no array a[0 - d]. No ínicio do desafio é informado o seguinte limite que define esta lógica 1 <= d <= n, ou seja, não preciso me preocupar em girar a matriz para a esquerda mais vezes que os itens na matriz.

Em seguida, usei .concat() para concatenar (ou mesclar) o que resta de a, ou tudo depois de a[d], com o que separei no primeiro passo a[0 - d].

E então, finalizo a função retornando essa matriz recém-organizada. 🖖


🕵Soluções Extras

Outras línguas que eu falo


💎 Ruby

def leftRotation(a, d)
	a.rotate(d)
end

🐍 PYTHON 2 & 3

def leftRotation(a, d):
	return a[a:] + a[:a]

golang GOLANG

func leftRotation(a[] int32, d int32) []int32 {
	return append(a[d:], a[:d]...)
}

scala SCALA

def leftRotation(a: Array[Int], d: Int): Array[Int] = {
	return a.drop(d)++a.take(d);
}

javaJAVA 7 & 8

static int leftRotation(int[] a, int d) {
	int[] rotated = new int[a.length];
	for (int i = 0; i <  a.length; i++) {
				rotated[(i + a.length - d) % a.length] = a[i];
	}
	return rotated;
}

php PHP

function leftRotation($a, $d) {
	return array_merge(array_splice($a, $d, count($a)), array_splice($a, 0, $d));
}

Pensamento: O que não provoca minha morte faz com que eu fique mais forte.
Friedrich Nietzsche

💡 Últimos Insights:

Não afirmo que essas respostas são as melhores ou mais eficientes, elas são simplesmente criações da minha mente para resolver o problema naquele momento. Provavelmente hoje eu faria diferente...
Sobre MimResumo ProfissionalMetodologia de TrabalhoMemórias PessoaisCurriculum VitaeFotos & Viagens
ÁREAS DE ATUAÇÃOCTO as a ServiceCorporate ArchitectureSoftware & TechnologyFrontend DevelopmentBackend DevelopmentStrategy & ConsultingPlatform & DevSecOpsCustomer ExperienceAgile Culture
Hub de InovaçãoDistributed LT & BlockchainData Science & AnalyticsCybersecurity PlatformIntelligent AutomationAI & Machine Learning
CURSOS & TREINAMENTOSBlockchain & Distributed LTCybersecurity PlatformIntelligent AutomationFrontend DevelopmentBackend DevelopmentPlatform & DevSecOpsAI & Machine LearningProgressive Web AppsAgile Culture
Hackathons & Prêmios
PROJETOS REALIZADOSWEB3 / BLOCKCHAIN 2017 ~ 2024BitcoinEthereumRippleStarknetDIDInternet ComputerMarketplacesNFTHyperledgerWalletsDAODeFi DashboardsCrypto Checkoutsecurity tokensBANCOS 2016 ~ 2021Santander TottaSafra S.A.Santander BrasilProjetos Antigos 2000 ~ 2016SKYIntelACSNinho SoleilHP YouStoreHP Cartucho PirataMarlboro RacingMercedes BenzTortinhas AdriaChevrolet CaptivaGPA Sommeliers ClubUOL FinanceGafisaSprinterCasas BahiaJVCLew´laraPão de AçucarSchin RefrigerantesNescau 2.0PapaizTV CulturaSpacekidsBondage MusicMaison CriolaAntarctica OriginalNX ZeroSLK 2005Classe AClasse CPetrobrasBraskemNíveaJohnson & JohnsonAbyaraTIM (URA)NestléUOL
Blog PostsHACKERRANK 2017 ~ 2018#sockMerchant#countingValleys#repeatedstring#jumpingOnClouds#leftRotation
Fale Comigo
Isenção de ResponsabilidadePolítica de PrivacidadeTermos e Condições
Este PWA foi construído com ❤ no meu tempo livre 🤸‍♂️ através dos anos...