news 2026/4/16 9:11:08

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

作者头像

张小明

前端开发工程师

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/4/16 10:44:08

MySQL 8.0 SQL优化黑科技,面试官都不一定知道!

MySQL 8.0 SQL优化黑科技&#xff0c;面试官都不一定知道&#xff01; MySQL 8.0&#xff08;2018年发布&#xff09;带来了大批“黑科技”级优化特性&#xff0c;许多老面试官还停留在5.7时代&#xff0c;这些新特性能让查询性能飞起、索引维护零风险、统计更精准。实际生产中…

作者头像 李华
网站建设 2026/4/16 14:01:57

ComfyUI-Manager跨版本迁移终极指南:从备份到优化全流程

ComfyUI-Manager跨版本迁移终极指南&#xff1a;从备份到优化全流程 【免费下载链接】ComfyUI-Manager 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Manager 面对ComfyUI-Manager版本升级带来的配置丢失、节点失效等困扰&#xff1f;这份完整迁移方案将带你系…

作者头像 李华
网站建设 2026/4/16 12:15:27

怎么这么多StringUtils——Apache、Spring、Hutool全面对比

怎么这么多StringUtils&#xff1f;Apache、Spring、Hutool全面对比 Java开发者经常吐槽&#xff1a;“StringUtils这么多&#xff0c;到底用哪个&#xff1f;”没错&#xff0c;org.apache.commons.lang3.StringUtils&#xff08;Apache Commons Lang&#xff09;、org.sprin…

作者头像 李华
网站建设 2026/4/16 12:34:03

模电概念复习(概念完结篇)

频率响应请看第六章引言及6.1内容●注意&#xff1a;本章的模型和计算过程比较复杂&#xff0c;不做要求&#xff0c;但需要了解原理和概念。 ●由于什么的存在&#xff0c;放大电路对不同频率的正弦呈现不同的放大能力&#xff1f;由于电容、电感等电抗元件以及晶体管极间电容…

作者头像 李华
网站建设 2026/4/16 10:54:40

字节一面:你负责的业务系统,流量突然提升100倍QPS,你怎么办?

字节一面经典场景题&#xff1a;业务系统QPS突然提升100倍&#xff0c;怎么办&#xff1f; 这道题在字节跳动&#xff08;尤其是后端/架构方向&#xff09;面试中超级高频&#xff0c;考察你对高并发系统设计、应急处理和架构演进的全面理解。别直接说“加机器扩容”&#xff…

作者头像 李华
网站建设 2026/4/15 19:07:12

FPGA实现同步RS422转UART方案

要在 Xilinx Kintex-7 XC7K325T FPGA 上实现 同步 RS422 转 UART&#xff08;异步&#xff09; 的功能&#xff0c;需明确以下几点&#xff1a;&#x1f50d; 一、需求澄清&#xff1a;什么是“同步 RS422”&#xff1f;严格来说&#xff0c;RS422 是一种差分电气标准&#xff…

作者头像 李华