IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> java中冒号(:)的用法;【蓝桥杯2019 java B组】 G-外卖优先级 -> 正文阅读

[数据结构与算法]java中冒号(:)的用法;【蓝桥杯2019 java B组】 G-外卖优先级


1.java中冒号(:)的用法


String[] abc = new String[3]{"a","b","c"};
forString str : abc){
    System.out.println(str);    //这个地方的冒号就是遍历abc的集合,取出每一个元素

二、三元运算符boolean?true的内容:false的内容

int a=1;
int b=3;
int i = a>b?3:1;//这个地方的冒号用来选择值,如果a大于b,那么i=3,否则i=1

三、跳转标记

outer:for(int i=0;i<5;i++){
             for(int i=0;i<5;i++){
                 if(i==3){
                     continue outer;
                 }
             }
         }
//这个地方就是跳转标识,可用来标记地方 里层循环 continue直接跳出外层循环,继续执行外层循环

四、switch选择

switch(i){
case 1:oprate....breakcase 2:oprate....breakcase 3:oprate....break//用于switch选择,当i等于下面的值时,执行后面的操作,然后break跳出,如果没有break,那么将执行下面的oprate操作,一直到底!
defaultbreak}

2.Java HashMap containsKey() 方法


Java HashMap Java HashMap

containsKey() 方法检查 hashMap 中是否存在指定的 key 对应的映射关系。

containsKey() 方法的语法为:

hashmap.containsKey(Object key)
注:hashmap 是 HashMap 类的一个对象。

参数说明:

key - 键
返回值
如果 hashMap 中存在指定的 key 对应的映射关系返回 true,否则返回 false。

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // 创建一个 HashMap
        HashMap<Integer, String> sites = new HashMap<>();

        // 往 HashMap 添加一些元素
        sites.put(1, "Google");
        sites.put(2, "Runoob");
        sites.put(3, "Taobao");
        System.out.println("sites HashMap: " + sites);

        //检查 key 为 1 是否存在
        if(sites.containsKey(1)) {
            System.out.println("key 为 1 存在于 sites 中");
        }

    }
}

输出结果为

sites HashMap: {1=Google, 2=Runoob, 3=Taobao}
key 为 1 存在于 sites 中

对于不存在的,我们可以执行插入操作。

import java.util.HashMap;

class Main {
    public static void main(String[] args) {
        // 创建一个 HashMap
        HashMap<Integer, String> sites = new HashMap<>();

        // 往 HashMap 添加一些元素
        sites.put(1, "Google");
        sites.put(2, "Runoob");
        sites.put(3, "Taobao");
        System.out.println("sites HashMap: " + sites);

        //检查 key 为 4 是否存在,不存在插入该 key/value 对
        // 使用 ! 符号来对布尔结果取相反的值
        if(!sites.containsKey(4)) {
            sites.put(4, "Wiki");
        }
        System.out.println("Updated sites HashMap: " + sites);
    }
}

执行以上程序输出结果为:

sites HashMap: {1=Google, 2=Runoob, 3=Taobao}
Updated sites HashMap: {1=Google, 2=Runoob, 3=Taobao, 4=Wiki}

3.蓝桥杯2019 java B组 G-外卖优先级


//(1)“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ~ N。每家店都优先级(0 时刻) 优先级为 0。
//(2)经过 1 个时间单位
//–没有订单,则优先级会减少 1,最低减到 0
//–而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。
//(3)外卖店某时刻优先级>5,则会被系统加入优先缓存中;如果优先级<=3,则会被清除出优先缓存。
//(4)问:给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。
//(5)输入输出
//–第一行包含 3 个整数 N、M 和 T。
//–M行每行包含两个整数 ts 和 id,表示 ts 时刻编号 id 的外卖店收到 一个订单。
//2 6 6
//1 1
//5 2
//3 1
//6 2
//2 1
//6 2

//(1)“饱了么”外卖系统中维护着 N 家外卖店,编号 1 ~ N。每家店都优先级(0 时刻) 优先级为 0。
//(2)经过 1 个时间单位
//--没有订单,则优先级会减少 1,最低减到 0
//--而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。
//(3)外卖店某时刻优先级>5,则会被系统加入优先缓存中;如果优先级<=3,则会被清除出优先缓存。
//(4)问:给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。
//(5)输入输出
//--第一行包含 3 个整数 N、M 和 T。
//--M行每行包含两个整数 ts 和 id,表示 ts 时刻编号 id 的外卖店收到 一个订单。
//2 6 6
//1 1
//5 2
//3 1
//6 2
//2 1
//6 2

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class G外卖优先级 {
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();//n shop
        int M=sc.nextInt();//输入m行数据
        int T=sc.nextInt();//经历了总时间T后的缓存变化
        int[][] orders = new int[M][2];
        for (int i = 0; i < M; i++) {
            for (int j = 0; j < 2; j++) {
                orders[i][j] = sc.nextInt();
            }
        }
        Arrays.sort(orders, (a, b) -> {
            return a[0] - b[0];
        });
        /*===========业务逻辑=============*/
        Map<Integer, Integer> map = new HashMap<>(); // k-v : 编号-优先级
        int[] priors = new int[N]; //priors[i] 代表编号为i+1的外卖店的优先级大小
        int[] sign = new int[N];
        System.out.println("test");
        // 1.处理所有的时刻T
        for (int i = 1; i <= T; i++) {
            // 2.处理时刻为i的时刻的所有操作
            for (int[] order : orders) {
                int time = order[0];
                int num = order[1];  // 编号为num的外卖店收到订单
                if (time == i) {
                    // 2.1 将编号为num的外卖店的优先级 + 2,更新cache
                    priors[num - 1] += 2;
                    if (priors[num - 1] > 5 && !map.containsKey(num - 1)) {
                        map.put(num - 1, priors[num - 1]);
                    }
                    // 2.2 并标记收到订单的外卖店,为没有收到订单的外卖店优先级--作准备
                    sign[num - 1] = 1;
                }
            }
            // 2.没有收到订单的外卖店优先级都得--
            for (int j = 0; j < N; j++) {
                // 收到订单的外卖店 && 该店优先级 > 0,则--操作
                if (sign[j] == 0 && priors[j] > 0) {
                    priors[j]--;
                    // 优先级小于3则需要从缓存中移除
                    if (priors[j] <= 3 && map.containsKey(j)) {
                        map.remove(j);
                    }
                }
            }
            // 3.sign重置,进行下一时刻的判断
            sign = new int[N];
        }
        System.out.println(map.size());
    }

    }

}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:42:57  更:2022-04-09 18:46:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:48:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码