news 2026/6/10 21:13:23

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

作者头像

张小明

前端开发工程师

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/6/10 9:19:24

深入浅出 Android Hook 技术:Frida 框架入门系列

一、Hook 框架概述Hook 是一种在程序运行时动态修改或拦截函数调用、参数或返回值的技术。在 Android 安全研究、逆向分析以及自动化测试中&#xff0c;Hook 技术扮演着至关重要的角色。核心应用场景​拦截应用逻辑&#xff1a;获取或修改关键数据&#xff08;如加密密钥、用户…

作者头像 李华
网站建设 2026/6/10 9:22:23

IDEA 中 maven 图标失踪解决措施

你是否遇到过这样的情况&#xff0c;移动项目文件位置后&#xff0c;或某次打开之后 IDEA 中的 maven 图标消失不见&#xff0c;程序也无法启动了。下面介绍几种解决方法&#xff1a; 1. 方法一 进入 view 下的 tool windows 中点击 maven 即可&#xff0c;该方法适用于 编译器…

作者头像 李华
网站建设 2026/6/10 12:36:03

高性能场景为什么推荐使用PostgreSQL,而非MySQL?

高性能场景为什么推荐使用PostgreSQL&#xff0c;而非MySQL&#xff1f; 在高性能场景&#xff08;尤其是复杂查询、高并发混合负载、分析型/写重工作负载&#xff09;下&#xff0c;PostgreSQL&#xff08;简称 Postgres&#xff09;越来越被推荐&#xff0c;甚至在2025年已成…

作者头像 李华
网站建设 2026/6/10 10:52:44

【Android】Glide的缓存机制

Application Options(选项) Glide允许应用通过AppGlideModule实现完全控制Glide的内存和磁盘应用缓存。Glide对大部分应用提供合理的默认选项&#xff0c;部分应用需要定制。 Memory cache&#xff08;内存缓存&#xff09;自定义MemoryCache的大小 在GlideModule中使用applyOp…

作者头像 李华
网站建设 2026/6/10 1:07:06

5大信息获取神器深度评测:打破知识壁垒的终极方案

在信息爆炸的时代&#xff0c;你是否经常遇到这样的困境&#xff1a;精彩的深度报道被付费墙阻挡&#xff0c;重要的学术论文需要高价订阅&#xff0c;优质的内容资源难以触达&#xff1f;掌握正确的信息获取工具已经成为现代人必备的数字技能。本文将为你揭秘5款高效的内容获取…

作者头像 李华