news 2026/5/10 11:05:59

算法边界情况处理套路总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法边界情况处理套路总结

边界情况处理套路总结

套路1:数组/字符串为空或null

// 返回类型根据题目要求选择 if (nums == null || nums.length == 0) { return 0; // int类型 return ""; // String类型 return new ArrayList<>(); // List类型 return new int[0]; // 数组类型 }

套路2:长度为1的特殊情况

if (nums.length == 1) { return nums[0]; // 直接返回唯一元素 }

套路3:长度不够的情况

// 滑动窗口:至少需要k个元素 if (nums.length < k) { return new int[0]; } // 三数之和:至少需要3个数 if (nums.length < 3) { return new ArrayList<>(); }

套路4:初始化时处理边界

// 找最大值/最小值:初始化为第一个元素 if (nums == null || nums.length == 0) { return 0; // 或根据题目要求 } int max = nums[0]; // 先判断非空,再初始化

常见返回值对照表

返回类型找不到/为空时的返回值
int0 或 -1(根据题目)
String""
List<Integer>new ArrayList<>()
int[]new int[0]
booleanfalse

检查清单

做题时按这个顺序检查:

  1. null 检查:if (nums == null)
  2. 空数组/空字符串:if (nums.length == 0)
  3. 长度为1:if (nums.length == 1)
  4. 长度不够:if (nums.length < requiredLength)
  5. 参数有效性:if (k <= 0 || k > nums.length)
  6. 找不到结果:根据题目要求返回默认值

实际应用示例

// 最大子数组和 public int maxSubArray(int[] nums) { if (nums == null || nums.length == 0) return 0; int max = nums[0]; // 初始化为第一个元素 // ... } // 三数之和 public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> result = new ArrayList<>(); if (nums == null || nums.length < 3) return result; // ... } // 滑动窗口 public int[] maxSlidingWindow(int[] nums, int k) { if (nums == null || nums.length == 0 || k <= 0 || k > nums.length) { return new int[0]; } // ... }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 1:51:04

基于YOLOv12农作物检测系统1:农作物检测数据集说明(含下载链接)

一. 前言 本篇博客是《基于YOLOv12农作物检测系统》系列文章之《农作物检测数据集说明(含下载链接)》&#xff0c;网上有很多农作物检测数据集的数据&#xff0c;百度一下&#xff0c;一搜一大堆&#xff0c;但质量参差不齐&#xff0c;很多不能用&#xff0c;即使一个一个的看…

作者头像 李华
网站建设 2026/5/8 15:16:01

pip遇到依赖冲突警告时候的排查办法

使用pip安装的时候遇到了以下的依赖冲突问题&#xff0c;解决流程记录一下&#xff0c;相似的过程可以进行排查: (hello-agent) tipriestUranus:~/Documents/hello-agents/code/chapter15/Helloagents-AI-Town/backend (main*) $ pip install -r requirements.txt Collecting …

作者头像 李华
网站建设 2026/5/9 5:48:04

Linux 线程(1)

1.线程概念线程是进程内的最小执行单元&#xff0c;一个进程可以包含多个线程&#xff0c;所有线程共享进程的资源&#xff08;内存、文件句柄等&#xff09;&#xff0c;但有自己独立的执行栈和程序计数器。结合进程的核心区别可以这样理解&#xff1a;进程是资源分配的基本单…

作者头像 李华
网站建设 2026/5/5 21:28:54

医疗AI辅助诊断小程序:藏在便捷背后的技术底气

不用跑医院排队&#xff0c;打开手机小程序&#xff0c;上传症状描述或检查影像&#xff0c;几秒就能拿到AI辅助诊断建议——如今这样的医疗体验越来越常见。很多人觉得“好用”就够了&#xff0c;却不知道这些便捷背后&#xff0c;藏着好几项关键技术的支撑。作为深耕医疗数字…

作者头像 李华
网站建设 2026/5/5 9:12:02

mac 安装brew实战应用案例分享

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个mac 安装brew实战项目&#xff0c;包含完整的功能实现和部署方案。点击项目生成按钮&#xff0c;等待项目生成完整后预览效果 作为一名长期使用Mac进行开发的程序员&#x…

作者头像 李华