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

心得:刷算法的痛点-只根据题目的case思考,不考虑边界情况,写出一坨shit

977. 有序数组的平方
不停地根据错误用例给代码打补丁,最后还是会有新的错误用例,永远补不好。
下面展示一下耗时1小时产出的💩

class Solution {public int[] sortedSquares(int[] nums) {// 统计nums数组中非正数的个数int count = 0; // 非正数的个数for (int i = 0; i < nums.length; i++) {if (nums[i] < 0) {count++;}}int left = 0;int right = nums.length - 1;int[] ans = new int[nums.length];// 对每个元素平方for (int i = 0; i < nums.length; i++) {nums[i] = nums[i] * nums [i];ans[i] = nums[i];}// 1、nums中没有正数,平方后非递增if (count == nums.length) {int j = nums.length - 1;for (int i = 0; i < nums.length; i++) {ans[j--] = nums[i];}return ans;}//2、nums中都是正数,平方后依旧非递减if (count == 0) return ans;// 3、nums中第一个元素为0,其余为正数,平方后依旧非递减if (count == 1 && nums[0] == 0) return ans;// 4、nums中有正有负// 未排序的元素中,最大值在 left 与 right 之间int tmp = 0;int n = nums.length - 1;while (left <= right) {// 只剩最后一个元素未排序if (left == right) {ans[n] = nums[left];break;}// 将 left 与 right 所指元素添加到新数组 ans中if (nums[left] > nums[right]) {ans[n--] = nums[left];ans[n--] = nums[right];} else {ans[n--] = nums[right];ans[n--] = nums[left];}// 更新待排序元素的区间left++;right--;}return ans;}
}

image

http://www.hskmm.com/?act=detail&tid=29566

相关文章:

  • OI 数论 1
  • 2.4 DQN 变体(Rainbow)
  • Emacs折腾日记(三十二)——org mode的基本美化
  • 2025 工业风机十大品牌全景解析报告:覆盖离心风机,防爆风机,矿用风机的最新推荐
  • 2.3 深度 Q 网络(Deep Q-Network, DQN)
  • Linux存储媒介devmount
  • Linux系统目录(文件)结构
  • 实用指南:如何读懂Mach-O:构建macOS和iOS应用安全的第一道认知防线
  • vim配置使用
  • shell高级
  • shell流程控制
  • shell展开shell数组
  • shell排错
  • 原木
  • 格式化输出与文本处理
  • 2025年10月镀锌卷板厂家最新推荐排行榜,有花镀锌卷板,无花镀锌卷板,高锌层镀锌卷板,批发镀锌卷板公司推荐
  • React 19.2 重磅更新!这几个新特性终于来了
  • Akka.NET高性能分布式Actor框架完全指南
  • 基于Docker搭建MySQL Cluster
  • 2025 年抗氧剂厂家最新推荐排行榜,聚酯防黄变抗氧剂,透明膜防晶点抗氧剂,PC聚碳防黄变抗氧剂公司推荐!
  • PaddleX服务化部署精度低于命令行调用的原因及解决方案 - 指南
  • 某中心与华盛顿大学公布机器人研究奖项与学者名单
  • 会话跟踪方案
  • 阻塞、非阻塞、同步、异步的区别是什么?
  • 如何防范员工泄露数据给 AI?2025年选型与落地实战版
  • Linux文本编辑三剑客之grep
  • Linux文本编辑三剑客之sed
  • 做了项目经理才发现:上台发言,其实都有套路
  • 占位符
  • 什么是IO多路复用?