当前位置: 首页 > news >正文

网站建设项目可行性分析报告专业的建设机械网站

网站建设项目可行性分析报告,专业的建设机械网站,苏州做网站哪家好,越秀区居家办公目录 1.题目要求: 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 2.解题思路: 代码展示: 1.题目要求: 给你一个整数数组 nums 和一个整数 k &#xff0…

目录

1.题目要求:

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

2.解题思路:

代码展示:


1.题目要求:

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]

示例 2:

输入: nums = [1], k = 1
输出: [1]

提示:

  • 1 <= nums.length <= 105
  • k 的取值范围是 [1, 数组中不相同的元素的个数]
  • 题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的

2.解题思路:

创建一个哈希表,用其存放数组中出现的元素以及每个元素出现的次数

        //用哈希表存储出现的元素,和出现的次数Map<Integer,Integer> map = new HashMap<>();for (int i:nums) {if(map.containsKey(i)){map.put(i,map.get(i) + 1);}else {map.put(i,1);}}

先创建一个类numOfTimes , 其中有两个属性,一个key值,一个k值出现的次数

//创建一个类,其中两个属性,一个k值,一个k值出现的次数
class numOfTimes{int key;int times;public numOfTimes(int key, int times) {this.key = key;this.times = times;}
}

写一个类numsSortWayOfTimes继承Comparator方法接口,重写compare方法(对numOfTimes对象进行排序比较的方式---key值出现的次数times的大小

class numsSortWayOfTimes implements Comparator<numOfTimes> {@Overridepublic int compare(numOfTimes o1, numOfTimes o2) {return o1.times - o2.times;}
}

将map内的key值按照出现次数进行比大小

建立一个优先级队列大小为k,存储(元素与出现次数的)numOfTimes的对象

遍历队列后就会将出现次数最多的元素对象留在了堆中

        //将map内的key值按照出现次数进行比大小//建立一个优先级队列大小为k,存储(元素与出现次数的)numOfTimes的对象//遍历队列后就会将出现次数最多的元素留在了堆中Queue<numOfTimes> queue = new PriorityQueue<>(new numsSortWayOfTimes());//遍历map,将出现次数最高的前k个numOfTimes对象保存在堆中for (Map.Entry<Integer,Integer> entry:map.entrySet()) {queue.offer(new numOfTimes(entry.getKey(),entry.getValue()));if(queue.size() > k){queue.poll();}}

此时队列中存放的就是出现次数最多的元素对象
遍历队列将对象的key值保存在数组中,返回该数组即可

        //此时队列中存放的就是出现次数最多的元素//遍历队列将key值保存在数组中int[] res = new int[k];for(int i = 0; i < k; i++){res[i] = queue.poll().key;}return res;

代码展示:

import java.util.*;//创建一个类,其中两个属性,一个k值,一个k值出现的次数
class numOfTimes{int key;int times;public numOfTimes(int key, int times) {this.key = key;this.times = times;}
}//对numOfTimes进行排序比较的方式,(出现次数)
//继承Comparator接口重写compare方法
class numsSortWayOfTimes implements Comparator<numOfTimes> {@Overridepublic int compare(numOfTimes o1, numOfTimes o2) {return o1.times - o2.times;}
}public class Leetcode_347 {//给你一个整数数组 nums 和一个整数 k ,// 请你返回其中出现频率前 k 高的元素。// 你可以按 任意顺序 返回答案。
//    输入: nums = [1,1,1,2,2,3], k = 2
//    输出: [1,2]public int[] topKFrequent(int[] nums, int k) {//用哈希表存储出现的元素,和出现的次数Map<Integer,Integer> map = new HashMap<>();for (int i:nums) {if(map.containsKey(i)){map.put(i,map.get(i) + 1);}else {map.put(i,1);}}//将map内的key值按照出现次数进行比大小//建立一个优先级队列大小为k,存储(元素与出现次数的)numOfTimes的对象//遍历队列后就会将出现次数最多的元素留在了堆中Queue<numOfTimes> queue = new PriorityQueue<>(new numsSortWayOfTimes());//遍历map,将出现次数最高的前k个numOfTimes对象保存在堆中for (Map.Entry<Integer,Integer> entry:map.entrySet()) {queue.offer(new numOfTimes(entry.getKey(),entry.getValue()));if(queue.size() > k){queue.poll();}}//此时队列中存放的就是出现次数最多的元素//遍历队列将key值保存在数组中int[] res = new int[k];for(int i = 0; i < k; i++){res[i] = queue.poll().key;}return res;}
}

http://www.yayakq.cn/news/573140/

相关文章:

  • 常州网站建设报价网站成本
  • 网站代备案流程做国际物流需要哪些网站
  • 一般网站建设的流程图注册公司网上申请
  • 成都网站建设 3ewordpress主题制作下载
  • 刷外链教程seo推广排名网站
  • dedecms模板站淮南百姓网
  • 北京网站开发公司大全信阳建设监理协会网站
  • 顺德装修网站建设国内域名注册平台
  • 建设银行网站e动终端邯郸网络科技
  • 厦门做网站优化手工活接单正规平台
  • 企业建站多少钱一个月佐力药业股票
  • 哪个网站旅游攻略做的最好西安互联网推广公司
  • 网站的icon图标做多大学习网站制作
  • 信宜网站开发公司网站建设的感想
  • 企业网站制作要求手机版网站案例
  • 不用网站做cpa免费下载微信
  • 扬州电子商务网站建设东莞建设信息网官网
  • 安安互联怎么上传网站广州天河区网站建设公司
  • 四川做网站优化价格seo是付费的吗
  • 宁波网站设计服务收费价格相亲网站怎么做
  • 建立网站策划书有哪些做设计交易网站有哪些
  • 网站是哪个公司做的好网络公司要求做网站工商网监
  • 专门做外卖的网站网站制作建设有哪些
  • 楚雄自助建站系统郑州十大网站建设公司
  • 找工作在什么网站找比较好网络科技加我qq是干嘛
  • 百度收录网站怎么做wordpress导入网站
  • 比较好的设计欣赏网站网页设计与制作课程教学应用案例
  • 做高清图的网站锦州哪里做网站
  • 做网站大图片最近军事新闻
  • 廊坊哪里做网站好深圳的网站建设公司那家好