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

算法奇妙屋(三十八)-贪心算法学习之路 5

文章目录

  • 一. 力扣 [409. 最长回文串](https://leetcode.cn/problems/longest-palindrome/description/)
    • 1. 题目解析
    • 2. 算法原理
    • 3. 代码
  • 二. 力扣 [942. 增减字符串匹配](https://leetcode.cn/problems/di-string-match/description/)
    • 1. 题目解析
    • 2. 算法原理

一. 力扣409. 最长回文串

1. 题目解析

给定的字符串s, 使用s中的字符, 来构建最长的回文串, 这里字符不必全部使用

2. 算法原理

这里有两个小技巧👇
1. 这里我们可以使用当前字符个数m / 2 后再✖️2, 这样无论m奇偶, 可以得到偶数的长度
2. 用最后ret长度与原长度比较, 来判断是否有奇数字符

3. 代码

使用哈希表

classSolution{publicintlongestPalindrome(Strings){HashMap<Character,Integer>hash=newHashMap<>();intn=s.length(),ret=0;for(inti=0;i<n;i++){charch=s.charAt(i);hash.put(ch,hash.getOrDefault(ch,0)+1);}for(Map.Entry<Character,Integer>entry:hash.entrySet()){ret+=entry.getValue()/2*2;}returnret==n?ret:ret+1;}}

使用数组模拟哈希表, 效率更高, 且空间利用率更低

classSolution{publicintlongestPalindrome(Strings){int[]hash=newint[127];intn=s.length(),ret=0;for(inti=0;i<n;i++){hash[s.charAt(i)]++;}for(intx:hash){ret+=x/2*2;}returnret==n?ret:ret+1;}}

二. 力扣942. 增减字符串匹配

1. 题目解析

这道题理解题意很重要, 要注意是0到n, 总共n+1个数

2. 算法原理

升序时, 当前位置选最小值, 那么后一个位置不论选什么必定都大于该值
降序时, 当前位置选最大值, 那么后一个位置不论选什么必定都小于该值

http://www.jsqmd.com/news/569221/

相关文章:

  • 如何用开源工具解决光学教学与设计的可视化难题
  • 实战教程:用单卡4090D十分钟微调Qwen2.5-7B,效果立竿见影
  • MySQL数据库备份管理系统新增备份任务巡检功能
  • Phi-3-mini-4k-instruct-gguf多场景落地:跨境电商多语言商品描述批量生成
  • 从 0 到 1:如何用 RAG 技术解决大模型幻觉问题
  • Live Avatar数字人模型5分钟快速上手:阿里开源实时虚拟人一键部署教程
  • 简单介绍C语言中的字符串函数
  • 南北阁 Nanbeige 4.1-3B 部署案例:律师事务所内部合规问答系统私有化落地
  • 终极Windows热键侦探:3分钟定位并解决快捷键冲突问题
  • Vue.js前端项目实战:构建深度学习模型可视化监控仪表盘
  • AI驱动的Vue3应用开发平台深入探究(十九):CLI与工具链之Create VTJ CLI 参考
  • 新手友好!Ubuntu 18上BUUCTF PWN题‘RIP’的保姆级栈溢出通关攻略(附Python脚本)
  • MiniCPM-V-2_6 Ubuntu 20.04一键部署教程:从安装到运行
  • PyTorch 2.8镜像法律科技:庭审音视频→AI摘要+关键帧提取+证据链可视化
  • 告别信息混乱:Trilium中文版让知识管理像整理衣柜一样简单
  • Docker-Wechat:在容器中畅享跨平台微信体验
  • Isaac Gym摄像头数据获取全攻略:从CPU到GPU,教你实时显示RGB与深度图
  • Qwen3-ASR-0.6B在在线教育场景的应用:快速将讲课音频转文字
  • HUNYUAN-MT惊艳翻译效果:专业领域长文档翻译案例集
  • Qwen3-TTS快速体验:无需配置,打开网页直接生成AI语音
  • 算法学习助手:LFM2.5-1.2B-Thinking-GGUF详解经典排序与搜索算法
  • 给Halcon HImage加个“眼睛”:在VS2022调试器中实现图像可视化与右键保存功能
  • Graphormer在计算毒理学中的应用:预测hERG通道抑制活性的完整建模流程
  • 高口碑+强实力!优质建筑机器人公司盘点
  • 【逻辑心法】别用 switch-case 堆砌屎山了!撕碎液压控制的标志位迷宫,用 C++ 构筑层级状态机 (HSM) 的绝对秩序
  • openclaw如何更好创建agent
  • Docker镜像拉取超时?阿里云镜像加速保姆级配置指南(附中科院镜像对比)
  • umimax创建方式
  • 粉紫系超人气月兔铃仙
  • 【控制心法】别把教科书 PID 塞进钢铁里!撕碎理想数学的伪装,用 C++ 打造抗饱和与微分先行的工业级伺服引擎