外贸公司如何做公司网站/长沙网站优化体验

外贸公司如何做公司网站,长沙网站优化体验,小制作手工简单又漂亮,免费网站建设阿里云集合 关系 介绍 Deque 是一个接口 LinkedList 是这个接口的实现类 题目 输入输出 滑动窗口 基于双端队列实现 Deque<Integer> deque new LinkedList<>(); 滑动窗口代码 洛谷 public static List<Integer> maxSlidingWindow(int[] nums, int k) {List&l…

集合 关系 介绍

Deque 是一个接口

LinkedList 是这个接口的实现类

题目

输入输出

滑动窗口

基于双端队列实现

Deque<Integer> deque = new LinkedList<>();

滑动窗口代码 洛谷

  public static List<Integer> maxSlidingWindow(int[] nums, int k) {List<Integer> result = new ArrayList<>();Deque<Integer> deque = new LinkedList<>();for (int i = 0; i < nums.length; i++) {// 移除不在当前窗口的元素if (!deque.isEmpty() && deque.peekFirst() < i - k + 1) {deque.pollFirst();}// 移除队列中比当前元素小的元素,因为它们不可能成为最大值while (!deque.isEmpty() && nums[deque.peekLast()] <= nums[i]) {deque.pollLast();}// 将当前元素的索引加入队列deque.offerLast(i);// 窗口已满,记录当前窗口的最大值if (i >= k - 1) {result.add(nums[deque.peekFirst()]);}}return result;}// 求每个窗口的最小值public static List<Integer> minSlidingWindow(int[] nums, int k) {List<Integer> result = new ArrayList<>();Deque<Integer> deque = new LinkedList<>();for (int i = 0; i < nums.length; i++) {// 移除不在当前窗口的元素if (!deque.isEmpty() && deque.peekFirst() < i - k + 1) {deque.pollFirst();}// 移除队列中比当前元素大的元素,因为它们不可能成为最小值while (!deque.isEmpty() && nums[deque.peekLast()] >= nums[i]) {deque.pollLast();}// 将当前元素的索引加入队列deque.offerLast(i);// 窗口已满,记录当前窗口的最小值if (i >= k - 1) {result.add(nums[deque.peekFirst()]);}}return result;}

API

在 Java 中,Deque 是一个双端队列接口,它继承自 Queue 接口,支持在队列的两端进行元素的插入、删除和访问操作。LinkedListDeque 接口的一个实现类,下面介绍 Deque<Integer> deque = new LinkedList<>(); 常见的操作。

1. 插入元素

  • 在队列头部插入元素
    • addFirst(E e):将指定元素插入此双端队列的开头。如果插入失败(例如队列已满,但 LinkedList 一般不会出现这种情况),会抛出异常。
    • offerFirst(E e):将指定元素插入此双端队列的开头。如果插入成功返回 true,否则返回 false
  • 在队列尾部插入元素
    • addLast(E e):将指定元素插入此双端队列的末尾。如果插入失败,会抛出异常。
    • offerLast(E e):将指定元素插入此双端队列的末尾。如果插入成功返回 true,否则返回 false

示例代码

import java.util.Deque;  
import java.util.LinkedList;  public class DequeInsertionExample { public static void main(String[] args) { Deque<Integer> deque = new LinkedList<>(); // 在头部插入元素 deque.addFirst(1);  deque.offerFirst(2);  // 在尾部插入元素 deque.addLast(3);  deque.offerLast(4);  System.out.println(deque);  // 输出: [2, 1, 3, 4] } 
}

2. 删除元素

  • 删除队列头部元素
    • removeFirst():移除并返回此双端队列的第一个元素。如果队列为空,会抛出异常。
    • pollFirst():移除并返回此双端队列的第一个元素。如果队列为空,返回 null
  • 删除队列尾部元素
    • removeLast():移除并返回此双端队列的最后一个元素。如果队列为空,会抛出异常。
    • pollLast():移除并返回此双端队列的最后一个元素。如果队列为空,返回 null

示例代码

import java.util.Deque;  
import java.util.LinkedList;  public class DequeRemovalExample { public static void main(String[] args) { Deque<Integer> deque = new LinkedList<>(); deque.add(1);  deque.add(2);  deque.add(3);  // 删除头部元素 Integer firstRemoved = deque.removeFirst();  System.out.println("Removed  first: " + firstRemoved); // 输出: Removed first: 1 // 删除尾部元素 Integer lastRemoved = deque.pollLast();  System.out.println("Removed  last: " + lastRemoved); // 输出: Removed last: 3 System.out.println(deque);  // 输出: [2] } 
}

3. 访问元素

  • 访问队列头部元素
    • getFirst():返回此双端队列的第一个元素。如果队列为空,会抛出异常。
    • peekFirst():返回此双端队列的第一个元素。如果队列为空,返回 null
  • 访问队列尾部元素
    • getLast():返回此双端队列的最后一个元素。如果队列为空,会抛出异常。
    • peekLast():返回此双端队列的最后一个元素。如果队列为空,返回 null

示例代码

import java.util.Deque;  
import java.util.LinkedList;  public class DequeAccessExample { public static void main(String[] args) { Deque<Integer> deque = new LinkedList<>(); deque.add(1);  deque.add(2);  deque.add(3);  // 访问头部元素 Integer firstElement = deque.getFirst();  System.out.println("First  element: " + firstElement); // 输出: First element: 1 // 访问尾部元素 Integer lastElement = deque.peekLast();  System.out.println("Last  element: " + lastElement); // 输出: Last element: 3 } 
}

4. 其他操作

  • isEmpty():判断双端队列是否为空。
  • size():返回双端队列中的元素个数。

示例代码

import java.util.Deque;  
import java.util.LinkedList;  public class DequeOtherOperationsExample { public static void main(String[] args) { Deque<Integer> deque = new LinkedList<>(); System.out.println("Is  deque empty? " + deque.isEmpty());  // 输出: Is deque empty? true deque.add(1);  deque.add(2);  System.out.println("Size  of deque: " + deque.size());  // 输出: Size of deque: 2 } 
}

例题

https://codeforces.com/problemset/problem/977/D

// @github https://github.com/Dddddduo
// @github https://github.com/Dddddduo/acm-java-algorithm
// @github https://github.com/Dddddduo/Dduo-mini-data_structure
import java.util.*;
import java.io.*;
import java.math.*;
import java.lang.*;
import java.time.*;/*** 题目地址**/// xixi♡西
public class Main {static IoScanner sc = new IoScanner();static final int mod = (int) (1e9 + 7);
//    static final int mod = (int) (1e9 + 7);static int n;static long arr[];static boolean visited[];static ArrayList<ArrayList<Integer>> adj = new ArrayList<>();/*** @throws IOException*/private static void solve() throws IOException {// todon=sc.nextInt();arr=new long[n];long max=0;ArrayList<Long>list=new ArrayList<>();for(int i=0;i<n;i++){arr[i]=sc.nextLong();list.add(arr[i]);max=Math.max(max,arr[i]);}Deque<Long> deque = new LinkedList<>();deque.add(max);long ans1=max;while(true){if(ans1%3==0){if(list.contains(ans1/3)){deque.addLast(ans1/3);list.remove(ans1/3);ans1/=3;continue;}}if(list.contains(ans1*2)){deque.addLast(ans1*2);list.remove(ans1*2);ans1*=2;continue;}break;}ans1=max;while(true){if(ans1%2==0){if(list.contains(ans1/2)){deque.addFirst(ans1/2);list.remove(ans1/2);ans1/=2;continue;}}if(list.contains(ans1*3)){deque.addFirst(ans1*3);list.remove(ans1*3);ans1*=3;continue;}break;}for (Long l : deque) {dduo(l+" ");}}public static void main(String[] args) throws Exception {int t = 1;
//        t = sc.nextInt();while (t-- > 0) {solve();}}static <T> void dduo(T t) {System.out.print(t);}static <T> void dduoln() {System.out.println("");}static <T> void dduoln(T t) {System.out.println(t);}
}/*** IoScanner类** @author Dduo* @version 1.0* @description 通过IO流操作缓冲区减少了与底层输入输出设备的交互次数,旨在简化 Java 中的标准输入读取操作。*/
class IoScanner {BufferedReader bf;StringTokenizer st;BufferedWriter bw;public IoScanner() {bf = new BufferedReader(new InputStreamReader(System.in));st = new StringTokenizer("");bw = new BufferedWriter(new OutputStreamWriter(System.out));}public String nextLine() throws IOException {return bf.readLine();}public String next() throws IOException {while (!st.hasMoreTokens()) {st = new StringTokenizer(bf.readLine());}return st.nextToken();}public char nextChar() throws IOException {return next().charAt(0);}public int nextInt() throws IOException {return Integer.parseInt(next());}public long nextLong() throws IOException {return Long.parseLong(next());}public double nextDouble() throws IOException {return Double.parseDouble(next());}public float nextFloat() throws IOException {return Float.parseFloat(next());}public BigInteger nextBigInteger() throws IOException {return new BigInteger(next());}public BigDecimal nextDecimal() throws IOException {return new BigDecimal(next());}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qemu-STM32(十):STM32F103开篇

简介 本系列博客主要描述了STM32F103的qemu模拟器实现&#xff0c;进行该项目的原因有两点: 作者在高铁上&#xff0c;想在STM32F103上验证一个软件框架时&#xff0c;如果此时掏出开发板&#xff0c;然后接一堆的线&#xff0c;旁边的人估计会投来异样的目光&#xff0c;特别…

QT开发(6)--信号和槽

这里写目录标题 1. 信号和槽概述信号的本质槽的本质 2. 信号和槽的使用2.1 连接信号和槽2.2 文档查询 3.自定义信号和槽3.1 自定义槽3.2 自定义信号3.3 带参数的信号和槽 4. 信号和槽的断开 1. 信号和槽概述 在Qt中&#xff0c;⽤⼾和控件的每次交互过程称为⼀个事件。⽐如&quo…

【前端】Canvas画布实现在线的唇膏换色功能

【前端】Canvas画布实现在线的唇膏换色功能 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 【前端】Canvas画布实现在线的唇膏换色功能背景概述以下是我们的实现方法!第一步 — 找…

异步编程与流水线架构:从理论到高并发

目录 一、异步编程核心机制解析 1.1 同步与异步的本质区别 1.1.1 控制流模型 1.1.2 资源利用对比 1.2 阻塞与非阻塞的技术实现 1.2.1 阻塞I/O模型 1.2.2 非阻塞I/O模型 1.3 异步编程关键技术 1.3.1 事件循环机制 1.3.2 Future/Promise模式 1.3.3 协程&#xff08;Cor…

QT网页显示的几种方法及对比

一.直接跳转打开网页 1.使用QDesktopServices::openUrl调用系统浏览器 原理&#xff1a;直接调用操作系统默认浏览器打开指定URL&#xff0c;不在应用程序内嵌入网页。 优点&#xff1a; 实现简单&#xff0c;无需额外模块或依赖。 适用于仅需跳转外部浏览器的场景。 缺点&…

【赵渝强老师】在Docker中运行达梦数据库

Docker是一个客户端服务器&#xff08;Client-Server&#xff09;架构。Docker客户端和Docker守护进程交流&#xff0c;而Docker的守护进程是运作Docker的核心&#xff0c;起着非常重要的作用&#xff08;如构建、运行和分发Docker容器等&#xff09;。达梦官方提供了DM 8在Doc…

python转换wav到mp3

尺寸好大&#xff0c;8G多&#xff0c;但是&#xff0c;领动的车机不识别.wav格式的音乐。 用python转换一下。 import os from pydub import AudioSegment filesos.listdir(E:\\dy2023) for f in files:if f.endswith(.wav):try:wavAudioSegment.from_wav(E:\\dy2023\\%s % f…

创建自己的github.io

1、创建GitHub账号 GitHub地址&#xff1a;https://github.com/ 点击Sign up创建账号 如果已创建&#xff0c;点击Sign in登录 2、创建仓库 假设Owner为username&#xff0c;则Repository name为username.github.io说明&#xff1a; 1、Owner为用户名 2、Repository name为仓…

Linux系统docker部署Ollama本地大模型及部署Hugging Face开源模型,ollama相关注意点,非ollama模型创建,模型量化,显存建议

本文主要描述在Linux系统使用docker部署ollama自有模型以及Hugging Face开源模型&#xff0c;也涉及到一些相关注意点&#xff0c;欢迎沟通讨论~ 拉取镜像 拉取ollama最新镜像&#xff1a;docker pull ollama/ollama:latest 运行ollama 执行&#xff1a;docker run -d --res…

在 Elasticsearch 中扩展后期交互模型 - 第 2 部分 - 8.18

作者&#xff1a;来自 Elastic Peter Straer 及 Benjamin Trent 本文探讨了如何优化后期交互向量&#xff0c;以适应大规模生产工作负载&#xff0c;例如减少磁盘空间占用和提高计算效率。 在之前关于 ColPali 的博客中&#xff0c;我们探讨了如何使用 Elasticsearch 创建视觉搜…

深入理解 JavaScript/TypeScript 中的假值(Falsy Values)与逻辑判断 ✨

&#x1f579;️ 深入理解 JavaScript/TypeScript 中的假值&#xff08;Falsy Values&#xff09;与逻辑判断 在 JavaScript/TypeScript 开发中&#xff0c;if (!value) 是最常见的条件判断之一。它看似简单&#xff0c;却隐藏着语言的核心设计逻辑&#xff0c;也是许多开发者…

【大语言模型_6】mindie启动模型错误整理

一、启动报 [hccl_runner.cpp:141] AllGatherHcclRunner:0 HcclCommInitRootInfo fa il, error:2, rank:0, rankSize:2 背景&#xff1a;运行DeepSeek-R1-Distill-Qwen-14B模型&#xff0c;在2张300 P卡可以运行&#xff0c;单独一张启动报以上错误。 问题分析&…

【计算机网络】网络简介

文章目录 1. 局域网与广域网1.1 局域网1.2 广域网 2. 路由器和交换机3. 五元组3.1 IP和端口3.2 协议3.3 协议分层 4. OSI七层网络协议5. TCP/IP五层模型5.1 TCP/IP模型介绍5.2 网络设备所在分层 6. 封装与分用6.1 数据包的称谓6.2 封装6.3 分用 1. 局域网与广域网 1.1 局域网 …

在QT中进行控件提升操作

目录 一、概述 二、功能需求 三、提升操作 1&#xff09;拖入标准控件 2&#xff09;自定义类 3&#xff09;提升控件 一、概述 QT中提供的标准控件能够满足我们大多数情况下的功能需求&#xff0c;但是在一些特殊应用场合&#xff0c;我们可能需要对控件的功能进行扩展&am…

如何自定义知行之桥Webhook端口返回的Response消息

一、Webhook端口功能概述 知行之桥的Webhook端口提供灵活的消息响应机制&#xff0c;支持用户通过修改配置文件自定义返回的消息体内容&#xff0c;能够查看是否调用接口成功、数据是否推送成功以及自定义返回给用户端的响应内容。 本指南将详解如何通过脚本配置实现以下需求…

蓝桥杯学习-13回溯

13回溯 一、回溯1 例题1–递归实现排列型枚举-蓝桥19684 1.递归可以解决不定次数的循环问题 2.使用数组来标记数字是否被选过import java.util.Scanner;public class Main {static int n;static boolean[] st new boolean[10]; //判断数字是否被选过static int[] path ne…

【IDEA中配置Maven国内镜像源】

1. 为什么需要配置国内镜像源&#xff1f; 首先&#xff0c;Maven本身的工作原理是通过从仓库中下载依赖包。而这些依赖通常来自于 Maven中央仓库&#xff08;位于国外&#xff09;&#xff0c;由于网络原因&#xff0c;我们在国内访问这些远程仓库的速度比较慢&#xff0c;甚至…

【DeepSeek 学c++】dynamic_cast 原理

用于向下转化。 父类引用指向指类对象 假设父亲是a, 子类是b. B* pb new B; 子类对象 A* pa 父类引用指向子类对象&#xff0c; 那么向上转化 Apa pb 这个是自动完成的&#xff0c;隐式转化&#xff0c;不需要dynamic_cast 向下转化指的是 A pa new B。 这个是指向子类对象…

Touch Diver:Weart为XR和机器人遥操作专属设计的触觉反馈动捕手套

在虚拟现实&#xff08;VR&#xff09;和扩展现实&#xff08;XR&#xff09;领域&#xff0c;触觉反馈技术正逐渐成为提升沉浸感和交互体验的重要因素。Weart作为这一领域的创新者&#xff0c;凭借其TouchDIVER Pro和TouchDIVER G1触觉手套&#xff0c;为用户带来了高度逼真的…

Word中公式自动标号带章节编号

&#xff08;1&#xff09;插入一行三列的表格&#xff0c;设置宽度分别为0.5&#xff0c;13.39和1.5&#xff0c;设置纵向居中&#xff0c;中间列居中对齐&#xff0c;最右侧列靠右对齐&#xff0c;设置段落如下 &#xff08;2&#xff09;插入域代码 【Word】利用域代码快速实…