提示:在算法处理过程中,未必就要将出现在前面的作为关键字检索。比如本题,非得先去检索范围,再去判断范围中key的个数。反其道而行,把输入的数字当作关键字,组成Map

package test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;public class Main6 {/** 相当于在输入的权值数组的下面,进行序号装入* 1 2 3 3 5 -> * 1:1  * 2:2 * 3:3,4* 4:5* 入此进行判断范围* * * */public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);int n=sc.nextInt();HashMap<Integer,ArrayList<Integer>> hm=new HashMap<Integer,ArrayList<Integer>>();for(int i=0;i<n;i++) {int temp=sc.nextInt();if(hm.containsKey(temp)) {hm.get(temp).add(i);}else {ArrayList<Integer> al=new ArrayList<Integer>();al.add(i);hm.put(temp,al);}}int m=sc.nextInt();int b[]=new int[m];for(int j=0;j<m;j++) {int low=sc.nextInt()-1;int high=sc.nextInt()-1;int key=sc.nextInt();if(!hm.containsKey(key)) {b[j]=0;}else {b[j]=getNum(low, high,hm.get(key));}}for(int j=0;j<m;j++) {System.out.println(b[j]);}sc.close();}public static int getNum(int low ,int high,ArrayList<Integer> al) {int i=0;int j=al.size()-1;//如果list中的最小值比你范围中最大值还大,例如你查找[1,2] 3   //显然al.get(3)中最小的也是三,所以里面定然无值,返回0.同理最小值大于它最大值也是返回0.比如2 4 5肯定返回0  if(al.get(i)>high || al.get(j)<low ) {return 0;}else {while(al.get(i)<low || al.get(j)>high) {if(al.get(i)<low) i++;if(al.get(j)>high) j--;}return j-i+1;}}
}

转载于:https://www.cnblogs.com/theWinter/p/11261972.html

算法:用户喜好--Map与List配合下的查找相关推荐

  1. 用户喜好(今日头条算法题)

    为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连 ...

  2. 应用下载店用户喜好分析

    应用下载店绝对是2008和2009年度通讯行业最重要的关键词之一.Apple AppStore,MicroSoft Windows Marketplace,Nokia OviStore, Google ...

  3. Python+SQL实战:京东用户行为数据分析案例解析(下)

    freedom_lime | 作者 掘金 | 来源 https://juejin.im/post/6844904202590748679#heading-0 4. 用户行为转化漏斗 # 导入相关包 f ...

  4. 数据结构与算法之美笔记——基础篇(下):图、字符串匹配算法(BF 算法和 RK 算法、BM 算法和 KMP 算法 、Trie 树和 AC 自动机)

    图 如何存储微博.微信等社交网络中的好友关系?图.实际上,涉及图的算法有很多,也非常复杂,比如图的搜索.最短路径.最小生成树.二分图等等.我们今天聚焦在图存储这一方面,后面会分好几节来依次讲解图相关的 ...

  5. 今日头条2018校招后端方向(用户喜好)c++

    题目描述: 为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用 ...

  6. imx6ull平台视频相关-ipu的EOF中断响应过程及用户空间map视频存储过程

    一.imx6ull平台视频相关-ipu的EOF中断响应过程 ipu_csi_enc.c中的csi_enc_enabling_tasks注册EOF中断,EOF中断说如下:(在手册中摘阅) 该中断的回调函 ...

  7. [JS] [C] [编程题] 用户喜好

    字节跳动2018校招前端方向(第二批) 同一个方法, 用JS就爆超时, 只能通过50%的用例, 用C就能AC- 本题主要就是坑!!! 数据大!!! 大坑啊!! 时间限制:C/C++ 3秒,其他语言6秒 ...

  8. 量子计算机模型取,Grover算法在单道量子计算模型下的实现

    摘要: 量子计算机以其巨大的潜力日益得到人们的重视,而且在通向真正实用的量子计算装置的道路上,我们也取得了巨大的进步.从经典计算机的体系结构得到启示,人们提出了量子计算的量子线路模型.它基于一系列作用 ...

  9. 图像降噪算法——小波硬阈值滤波(下)

    图像降噪算法--小波硬阈值滤波(下) 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--小波硬阈值滤波(下) 1. 基本原理 关于离散小波变换的原 ...

最新文章

  1. 一文带你搞懂 MySQL 分区!
  2. 存储过程-数据位置调换demo
  3. android fragment 弹出对话框,Android DialogFragment弹框实现
  4. 主流html5桌面应用开发,主流HTML5开发工具推荐
  5. 极致的线上产品设计与终极数据分析工具,两者缺一不可(下)
  6. cmd在执行hadoop version时出现系统找不到指定的路径。 Error: JAVA_HOME is incorrectly set
  7. 中国的就业(人才)市场缺什么?
  8. [在今天的历史]他们终于要对我下毒手了
  9. 机房服务器配置方案文件,机房改造/机房搬迁实施方案及步骤
  10. 前端中那些让你头疼的英文单词
  11. Mac搭建Linux虚拟机
  12. 手机刷入面具_小米手机机型怎么刷入脸谱Magisk模块详细教程
  13. Hadoop 1.x 和 Hadoop 2.x 有什么区别?
  14. 大佬总结的4条宝贵经验,送给初入职场的你,从此一飞冲天
  15. scalac: Token not found...
  16. 十分担心外行人抢内行人的饭碗
  17. unicode,UTF-8,UTF-16,UTF-32是什么,各有什么关系
  18. 【两行代码——最简单装X 哈哈哈】
  19. 南大通用参加1024程序员节 沉淀自主知识产权 共建中国标准
  20. 实用分享 2017年最新发布 iod app 上架流程

热门文章

  1. jsp中request.getAttributeNames()报红
  2. IntelliJ IDEA for Mac 封装字段(添加setter/getter方法)
  3. Linux 命令之 set -- 显示或设置 shell 特性及 shell 变量
  4. 八中计算机是学啥的,北京八中:居然有这么好玩的课
  5. 处理接口超时_架构设计|异步请求如何同步处理?
  6. g30u盘启动 中科曙光1620_I620-G30
  7. 反射与泛型 java_Java的反射 和 泛型的一个问题
  8. envi最大似然分类_闲谈最大后验概率估计(MAP estimate)amp;极大似然估计(MLE)和机器学习中的误差分类...
  9. 数组中一个属出现奇数次,其他数都出现偶数次.寻找出这个出现奇数次的数
  10. 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板