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

A.每日一题——3606. 优惠券校验器

题目链接:3606. 优惠券校验器(简单)

算法原理:

解法:模拟

击败47.54%

时间复杂度O(Nlogn)

这题的思路非常简单,但是实现起来比较麻烦,感觉应该算个中等题,主要就是考察排序

记忆👇

1. 字符串比:compareTo ✅
什么词序、字典序、名称排序都用它
2. 数字比:用包装类的 compare ✅
Integer.compare(a, b)、Double.compare(a, b)
3. 其他基本类型:直接相减 ✅
char1 - char2、int1 - int2(小数值可用)

Java代码:

class Solution { public List<String> validateCoupons(String[] c, String[] b, boolean[] isActive) { int n=c.length; List<String> ret=new ArrayList<>(); String[][] tmp=new String[n][2]; for(int i=0;i<n;i++){ if(isc(c[i])&&isb(b[i])&&isActive[i]){ tmp[i][0]=c[i]; tmp[i][1]=b[i]; }else{ //标记为无效记录,防止空指针报错 tmp[i][0]=""; tmp[i][1]=""; } } Arrays.sort(tmp,(x,y)->{ //处理空记录:空记录排在最后 if(x[0].equals("")&&y[0].equals("")) return 0; if(x[0].equals("")) return 1;//x为空,x在后面 if(y[0].equals("")) return -1;//y为空,x在前面 //先比较品牌首字符 int tmpret=Character.compare(x[1].charAt(0),y[1].charAt(0)); if(tmpret!=0) return tmpret; //品牌首字母相同,再比较代码 return x[0].compareTo(y[0]); }); for(String[] t:tmp){ if(t[0].equals("")) continue; ret.add(t[0]); } return ret; } private boolean isc(String s){ for(char c:s.toCharArray()){ if(!(c>='a'&&c<='z')&&!(c>='A'&&c<='Z') &&!(c>='0'&&c<='9')&&!(c=='_')) return false; } return true; } private boolean isb(String s){ return (s.equals("electronics")||s.equals("grocery")||s.equals("pharmacy")||s.equals("restaurant")); } }
http://www.cnnetsun.cn/news/43185.html

相关文章:

  • Flutter + FastAPI 30天速成计划自用并实践-第10天-组件化开发实践
  • 本地化部署腾讯混元大模型并集成Elasticsearch构建智能检索系统全攻略
  • 【面板数据】全球稀土贸易数据(2018-2024年)
  • 【后端】【Java】一文详解Spring Boot 统一日志与链路追踪实践
  • 无需运动恢复结构(SfM)的层级训练三维高斯溅射(3D Gaussian Splatting)
  • CS配合CrossC2插件,实现MacOS/Linux上线
  • 4、Puppet 入门:从基础使用到主从架构搭建
  • 线性代数(五)向量空间与子空间
  • matlab debug 调试程序
  • VibeVoice-Large-Q8:语音模型存储与性能的革命性突破——8位选择性量化技术深度解析
  • 腾讯开源双引擎AI模型:混元3D开创多模态创作新纪元,千倍效率革命重塑数字内容生产
  • Csharp学习笔记——常用类、集合框架、泛型、字典精华总结
  • 下载神器downkyi:5分钟掌握任务优先级管理技巧
  • 63.测试策略-领域模型测试集成测试实操方法-附测试框架选择
  • 1.2 主流大模型初探:解锁OpenAI、Gemini、Claude的强大能力
  • Ring-mini-linear-2.0:融合线性注意力与稀疏专家的下一代高效大语言模型
  • MFC消息处理机制
  • 商业级图像合成引擎6.0版本重磅发布:解锁跨场景视觉创作新范式
  • MyBatis-Plus与Spring整合(02--Service的代理)
  • 11、渗透测试实战:目标探索、利用与攻击行动
  • 16、攻击收尾:报告与撤离
  • 20、树莓派的替代项目探索
  • 事件查看器-事件ID
  • 单步出图革命:Consistency Model如何以100倍效率重构AI绘画产业格局
  • 搭建鸿蒙PC命令行适配环境测试hello程序
  • 编辑相似度(Edit Similarity):原理、演进与多模态扩展
  • 【深度解析】MiniCPM 2.0:端侧大模型的技术性进展与技术革新
  • ClickHouse 快速入门
  • 基于SpringBoot的人事管理系统设计与实现
  • 【论文阅读】Multi-modal Spatial Clustering for Spatial Transcriptomics Utilizing High-resolution Histology