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

上海建站网络公司头条号权重查询

上海建站网络公司,头条号权重查询,东莞最新出入政策,qq营销网站源码20250222 49 红包运气排行榜java使用list实现java使用MapList实现 49 红包运气排行榜 java使用list实现 import java.util.*;public class Main {public static List<String> solution(int n, List<String> s, List<Integer> x) {// 创建一个列表来存储参与…

20250222

  • 49 红包运气排行榜
  • java使用list实现
  • java使用Map+List实现

49 红包运气排行榜

在这里插入图片描述

java使用list实现

import java.util.*;public class Main {public static List<String> solution(int n, List<String> s, List<Integer> x) {// 创建一个列表来存储参与者的信息List<Pair> participants = new ArrayList<>();// 将参与者的名字和金额存储到列表中for (int i = 0; i < n; i++) {participants.add(new Pair(s.get(i), x.get(i)));}// 对参与者列表进行排序Collections.sort(participants, new Comparator<Pair>() {@Overridepublic int compare(Pair p1, Pair p2) {// 先按金额降序排序if (p1.amount != p2.amount) {return p2.amount - p1.amount;}// 如果金额相同,保持原来的顺序return 0; // 这里需要保持原来的顺序}});// 提取排序后的名字列表List<String> result = new ArrayList<>();for (Pair p : participants) {result.add(p.name);}return result;}// 定义一个简单的 Pair 类来存储名字和金额static class Pair {String name;int amount;Pair(String name, int amount) {this.name = name;this.amount = amount;}}public static void main(String[] args) {System.out.println(solution(4, Arrays.asList("a", "b", "c", "d"), Arrays.asList(1, 2, 2, 1)).equals(Arrays.asList("b", "c", "a", "d")));System.out.println(solution(3, Arrays.asList("x", "y", "z"), Arrays.asList(100, 200, 200)).equals(Arrays.asList("y", "z", "x")));System.out.println(solution(5, Arrays.asList("m", "n", "o", "p", "q"), Arrays.asList(50, 50, 30, 30, 20)).equals(Arrays.asList("m", "n", "o", "p", "q")));}
}

发现报错:
在这里插入图片描述
原因在于:用户可以强多次,最后他抢到的金额需要累计,所以不能简单的使用list实现

java使用Map+List实现

import java.util.*;public class Solution {public static List<String> solution(int n, List<String> s, List<Integer> x) {assert n == s.size() && n == x.size();Map<String, Integer> start = new HashMap<>();Map<String, Integer> cnt = new HashMap<>();for (int i = 0; i < n; i++) {String key = s.get(i);if (!start.containsKey(key)) {start.put(key, i);}cnt.put(key, cnt.getOrDefault(key, 0) + x.get(i));}// 创建一个列表,用于存储cnt中的键,以便进行排序List<String> keys = new ArrayList<>(cnt.keySet());// 根据cnt的值降序和在s中首次出现的位置升序进行排序Collections.sort(keys, (a, b) -> {int cmp = cnt.get(b).compareTo(cnt.get(a)); // 按cnt降序if (cmp == 0) {return Integer.compare(start.get(a), start.get(b)); // 如果cnt相同,则按首次出现位置升序}return cmp;});return keys;}public static void main(String[] args) {System.out.println(solution(4, Arrays.asList("a", "b", "c", "d"), Arrays.asList(1, 2, 2, 1)).equals(Arrays.asList("b", "c", "a", "d")));System.out.println(solution(3, Arrays.asList("x", "y", "z"), Arrays.asList(100, 200, 200)).equals(Arrays.asList("y", "z", "x")));System.out.println(solution(5, Arrays.asList("m", "n", "o", "p", "q"), Arrays.asList(50, 50, 30, 30, 20)).equals(Arrays.asList("m", "n", "o", "p", "q")));}
}

思路:

  1. 2个map,一个存储用户名和他抢的红包,1个存储他抢的顺序
  2. 使用list根据抢的红包数额对用户名排序
  3. 最后返回排序后的list
http://www.dtcms.com/wzjs/482134.html

相关文章:

  • 毕业设计选择做网站的意义国产搜什么关键词最好看
  • 超级外链发布优化培训内容
  • wordpress二级域名作为图床百度seo培训要多少钱
  • 山西住房建设厅网站天津百度快速优化排名
  • 网易做的什么网站滨州seo排名
  • 深圳建站的公司网络整合营销策划书
  • 网站title字数合肥优化营商环境
  • ss网站代码广西壮族自治区人民医院
  • 网站首页加浮动窗口品牌推广案例
  • wordpress图片上加文字seo排名工具提升流量
  • 网站地图在首页做链接金城武重庆森林经典台词
  • 山东东营市区号泰州百度关键词优化
  • 做网站的难点东莞seo外包公司
  • 网站后台上传模板有哪些营销推广方式
  • 手机网站友情链接怎么做做网站用什么软件好
  • 怎么给公司做网站外链在线发布工具
  • 做代理稳妥的彩票网站有哪些提升seo排名平台
  • wordpress建站有广告吗网络营销课程介绍
  • 邳州微网站开发长沙seo网站
  • 做视频招标的网站有哪些在线推广网站的方法
  • 学习建网站玩网站建设学习泉州seo按天计费
  • 南通制作网站的有哪些公司个人seo外包
  • 通过wordpress建站山东seo费用多少
  • 网站续费后为何还不能用网络工程师是干什么的
  • 交流做病理切片的网站郴州网络推广外包公司
  • 黄色国内外网站百度的总部在哪里
  • 线上h5是什么意思沈阳seo收费
  • web开发工程师岗位描述百度seo搜索引擎优化方案
  • 武汉双军网站建设公司广东新闻今日最新闻
  • 昆明网站设计公司大连网站排名推广