<02.23>Leetcode100

embedded/2025/2/24 14:15:18/

class Solution {public String minWindow(String s, String t) {if (s.length() < t.length()) {return "";}HashMap<Character, Integer> count = new HashMap<>();// 统计组成t字符串的每个字符数量// count[n]<0:滑动窗口缺少多少个n字符// count[n]==0:滑动窗口刚好包含多少个n字符// count[n]>0:滑动窗口超过多少个n字符
…                    if (count.get(d) < 0) {formed--;}}}}return length == Integer.MAX_VALUE ? "" : s.substring(start, start + length);}
}
class Solution {public String minWindow(String ss, String tt) {char[] str = ss.toCharArray();char[] t = tt.toCharArray();HashMap<Character,Integer> count = new HashMap<>();//统计组成t字符串中每个字符的数量for(char c:t){count.put(c,count.getOrDefault(c,0)-1);}int val_len = 0;//子串中有效的长度int ans_len = Integer.MAX_VALUE;//记录这个答案串的长度int ans_start_l = 0;//记录这个答案串的起始位置for(int l=0,r=0;r<str.length;r++){char c = str[r];//更新窗口中的字符计数if(count.containsKey(c)){//如果是t中包含的字段if(count.get(c)<0){//并且此时我们缺少它val_len ++;}count.put(c,count.get(c)+1);//是t中包含的字段 但是我们不缺少它}//当窗口中的字符满足条件时候 尝试缩小窗口while(val_len == t.length){if(r-l+1<ans_len){//更优的答案ans_start_l = l;ans_len = r - l + 1 ;}char d = str[l];//我们要尝试删去l ++ ;if(count.containsKey(d)){count.put(d,count.get(d)-1);if(count.get(d)<0)val_len--;//这里可以不再符合条件了 因为符合条件的那个情况我们已经记录了}}}// if(ans_len == Integer.MAX_VALUE){pw.print("\"\"");}// else{//     pw.print("\"");//     for(int i=ans_start_l;i<ans_start_l+ans_len;i++)pw.print(str[i]);//     pw.print("\"");// }return ans_len == Integer.MAX_VALUE ? "" : new String(str).substring(ans_start_l, ans_start_l + ans_len);}
}

 

import java.util.*;
import java.io.*;
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));char[] str = br.readLine().toCharArray();char[] t = br.readLine().toCharArray();HashMap<Character,Integer> count = new HashMap<>();//统计组成t字符串中每个字符的数量for(char c:t){count.put(c,count.getOrDefault(c,0)-1);}int val_len = 0;//子串中有效的长度int ans_len = Integer.MAX_VALUE;//记录这个答案串的长度int ans_start_l = 0;//记录这个答案串的起始位置for(int l=0,r=0;r<str.length;r++){char c = str[r];//更新窗口中的字符计数if(count.containsKey(c)){//如果是t中包含的字段if(count.get(c)<0){//并且此时我们缺少它val_len ++;}count.put(c,count.get(c)+1);//是t中包含的字段 但是我们不缺少它}//当窗口中的字符满足条件时候 尝试缩小窗口while(val_len == t.length){if(r-l+1<ans_len){//更优的答案ans_start_l = l;ans_len = r - l + 1 ;}char d = str[l];//我们要尝试删去l ++ ;if(count.containsKey(d)){count.put(d,count.get(d)-1);if(count.get(d)<0)val_len--;//这里可以不再符合条件了 因为符合条件的那个情况我们已经记录了}}}if(ans_len == Integer.MAX_VALUE){pw.print("\"\"");}else{pw.print("\"");for(int i=ans_start_l;i<ans_start_l+ans_len;i++)pw.print(str[i]);pw.print("\"");}pw.close();br.close();}
}

 

 


http://www.ppmy.cn/embedded/164839.html

相关文章

计算机网络————(一)HTTP讲解

基础内容分类 从TCP/IP协议栈为依托&#xff0c;由上至下、从应用层到基础设施介绍协议。 1.应用层&#xff1a; HTTP/1.1 Websocket HTTP/2.0 2.应用层的安全基础设施 LTS/SSL 3.传输层 TCP 4.网络层及数据链路层 IP层和以太网 HTTP协议 网络页面形成基本 流程&#xff1a…

MinIO对象存储在Windows中的部署方法

本文介绍在Windows电脑中&#xff0c;下载、部署对象存储系统MinIO的方法。 MinIO是一个高性能的对象存储系统&#xff0c;它兼容亚马逊AWS S3 API接口&#xff0c;专为存储大规模数据而设计&#xff1b;其使用开源协议&#xff0c;能够提供与Amazon S3云存储相同的API接口&…

视频图像质量评价开源算法介绍【持续更新】

关于视频质量评价介绍的文章可以跳转到该博客 浏览。 PSNR/SSIM 简介:基于原始视频与处理后视频的像素级误差计算,衡量压缩或传输后的质量损失,属于全参考评价算法。集成该算法的开源项目: OpenCVFFmpegEvalvidIQAVAMF 简介:Netflix开源,融合VIF(视觉保真度)、DLM(细…

ubuntu ffmpeg 安装踩坑

ffmpeg 安装踩坑 安装命令: sudo apt update sudo apt install ffmpeg如果以上命令没有报错&#xff0c;那么恭喜你很幸运&#xff0c;可以关闭这篇文章了&#xff01; 如果跟我一样&#xff0c;遇到如下报错&#xff0c;可以接着往下看&#xff1a; 报错信息&#xff1a; …

@Autowired和 @Resource

@Autowired 和 @Resource 都是用于依赖注入的注解,但它们来自不同的框架,并且在行为和使用方式上有一些区别。以下是它们的详细比较: 1. 来源 @Autowired: 来自 Spring 框架。是 Spring 的核心注解之一。@Resource: 来自 Java 标准库(javax.annotation包)。是 JSR-250 规…

SQL笔记#复杂查询

一、视图 1、视图和表 使用试图时会执行SELECT语句并创建一张临时表。视图中保存的是SELECT语句&#xff1b;表中保存的是实际数据。 2、创建视图的方法 CREATE VIEW 视图名称(<视图列名1>&#xff0c;<视图列名2>&#xff0c;……) AS <SELECT语句> CREATE…

C#上位机--进程和线程的区别

引言 在 C# 上位机开发中&#xff0c;进程和线程是两个非常重要的概念&#xff0c;它们在程序的运行和性能优化方面起着关键作用。理解进程和线程的区别&#xff0c;能够帮助开发者更好地设计和实现高效、稳定的上位机程序。本文将深入探讨 C# 上位机中进程和线程的区别&#…

用openresty和lua实现壁纸投票功能

背景 之前做了一个随机壁纸接口&#xff0c;但是不知道大家喜欢对壁纸的喜好&#xff0c;所以干脆在实现一个投票功能&#xff0c;让用户给自己喜欢的壁纸进行投票。 原理说明 1.当访问http://demo.com/vote/时&#xff0c;会从/home/jobs/webs/imgs及子目录下获取图片列表&…