一个业务中遇到的去重算法
2021/12/9 1:16:53
本文主要是介绍一个业务中遇到的去重算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
业务中遇到一个去重的需求,想了半天没有很好的解决办法,最后的实现用了好多中间对象,实际业务里还有要递归的情况(没具体去看是什么情况),空间复杂度及其糟糕,希望来个大佬可以给些思路,或者给些类似的经典题目,具体抽象如下:
现在有一组对象,每个对象分别有属性【id】【A】【B】,需要按特定规则对这组数据去重。
同一个A,会有多条对应的B,其对应的B中,如果有同一个B,对应多条A,删除重复项。否则保留id最大的一条。最终的结果是,需要保留唯一一条,A=>B的映射(不可将某一A全部删除)。输出需删除的id数组。
不会有不需去重的情况,不会有A-B相同的情况。
样例:
[{id:1,A:1,B:1},{id:2,A:1,B:2}] //输入 [1] //输出 [{id:1,A:1,B:1},{id:2,A:1,B:2},{id:3,A:2,B:2}] //输入 [2] //输出 [{id:1,A:1,B:1},{id:2,A:1,B:2},{id:3,A:1,B:3},{id:4,A:2,B:2},{id:5,A:2,B:3},{id:6,A:2,B:3},{id:7,A:3,B:3},{id:8,A:4,B:1},{id:9,A:4,B:4},{id:10,A:4,B:3}] //输入 [1,2,4,7,8,10] //输出
第三个例子的过程。
这篇关于一个业务中遇到的去重算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27消息中间件底层原理资料详解
- 2024-11-27RocketMQ底层原理资料详解:新手入门教程
- 2024-11-27MQ底层原理资料详解:新手入门教程
- 2024-11-27MQ项目开发资料入门教程
- 2024-11-27RocketMQ源码资料详解:新手入门教程
- 2024-11-27本地多文件上传简易教程
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器