当前位置: 首页 > 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.zskr.cn/news/19688.html

相关文章:

  • 2.4 DQN 变体(Rainbow)
  • Emacs折腾日记(三十二)——org mode的基本美化
  • pp
  • vim配置使用
  • shell展开shell数组
  • 原木
  • 2025年10月镀锌卷板厂家最新推荐排行榜,有花镀锌卷板,无花镀锌卷板,高锌层镀锌卷板,批发镀锌卷板公司推荐
  • 会话跟踪方案
  • 阻塞、非阻塞、同步、异步的区别是什么?
  • Linux文本编辑三剑客之grep
  • Linux文本编辑三剑客之awk
  • 详细介绍:【ROS2学习笔记】节点篇:节点概述
  • 2025.10.12 - 20243867孙堃2405
  • Linux查看一个文件的时候发生了什么?
  • 八、系统软件
  • 七、输入输出和存储系统
  • 那快把题端上来吧(五)
  • 构建易受攻击的AWS DevOps环境:CloudGoat攻防实战
  • MySQL 5.7版本,搭建一个两主一从的多源主从复制环境
  • 决胜职场:以准备为刃,破局而出
  • 计网思维导图总结
  • 如何下载不同版本的像素地牢
  • DropLoRA 论文浅读:通过动态子空间学习突破 LoRA 的性能瓶颈
  • switch语句的简单应用
  • defold游戏引擎与lua(teal)编程语言
  • Python GIL与No-GIL技术详解
  • ubuntu源码编译指定版本make
  • 02 常用快捷键和指令
  • 英语_翻译
  • mysql不等于<>取特定值反向条件的时候字段有null值或空值读取不到数据