LeetCode(六)
2021/9/3 6:06:36
本文主要是介绍LeetCode(六),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
-
package com.model.array; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/9/2 23:23 * 给你一个数组arr * 再给你一个[0,3,2] 查询数组arr从0到3有几个2 * 给你一个:[[0,3,2],[0,4,2],[1,3,2]] * 输出结果 */ public class ArrayDemo09 { public static void main(String[] args) { int[] arr={1,1,2,3,4,5,1,6}; int[][] matrix={{0,3,1},{0,6,1}}; System.out.println(Arrays.toString(getArr(arr, matrix))); } // 的到最终结果 public static int[] getArr(int[] arr,int[][] matrix){ // 得到数组中各个数在数组中的所有的下标,获取这张表 HashMap<Integer, ArrayList<Integer>> table = getTable(arr); int[] resInt = new int[matrix.length]; int index=0; for (int[] temp:matrix){ int left=temp[0]; int right=temp[1]; int target=temp[2]; resInt[index++]=getCount(table, target, left, right); } return resInt; } // 返回每个数和他的对用的出现下标的一张表 public static HashMap<Integer,ArrayList<Integer>> getTable(int[] arr){ HashMap<Integer, ArrayList<Integer>> map = new HashMap<>(); for (int i = 0; i < arr.length; i++) { ArrayList<Integer> list; if (!map.containsKey(arr[i])){ list = new ArrayList<>(); }else { list = map.get(arr[i]); } list.add(i); map.put(arr[i],list); } // for (Integer key:map.keySet()){ // System.out.println(key+"\t"+map.get(key)); // } return map; } //返回在right和left之间有几个数 public static int getCount(HashMap<Integer,ArrayList<Integer>> table,int target,int left,int right){ ArrayList<Integer> list = table.get(target); return small(list,right+1)-small(list,left); } // 返回list中小于index的有几个 public static int small(ArrayList<Integer> list,int index){ int l=0; int r=list.size()-1; int res=-1; while (l<=r){ int mid=l+(r-l)/2; if (list.get(mid)<index){ res=mid; l=mid+1; } else { r=mid-1; } } return res+1; } }
-
这篇关于LeetCode(六)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用