1、美团算法题
2021/10/2 14:10:20
本文主要是介绍1、美团算法题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. 同类项统计
给定数组['1a','2b','13c','5a'],数组元素的格式是一个数字(可能多位)前缀与一个字母的组合,输出出现次数最多的字母对应的前缀数字之和。
思路:使用hash。
- 将字母作为键;
- 将数组[字母出现的次数,前缀数字之和]作为键值。
实现:
function fun(arr){ let map = new Map(); for(let i=0;i<arr.length;i++){ let n1 = arr[i].slice(0,arr[i].length-1)-'0'; let n2 = arr[i][arr[i].length-1]; if(!map.has(n2)){ //该字母第一次出现 map.set(n2,[1,n1]); }else{ //该字母之前已出现。更新其出现的次数、累加和 let old = map.get(n2); map.set(n2,[old[0]+1,old[1]+n1]); } } let res = 0; //出现的最多次数所对应的累加和 let max = 0; //出现的最多次数 for(let key of map.keys()){//寻找出现次数最多的字母 const item = map.get(key); if( item[0]>max){ max = item[0]; res = item[1]; } } return res; } let arr = ['1a','2b','13c','5a']; console.log(fun(arr)); //6
这篇关于1、美团算法题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现