977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

977.有序数组的平方

1.自己思路: for循环平方 然后sort排序 可正常通过 但是耗时很久 算是暴力法 通过

2.双指针思路:利用题目的数组是非递减数组这个特点 大值肯定在两端 所以left right分别进行比较 大的放在数组最右(注意 for循环第三个元素可以不进行操作)耗时大大减小 通过

209.长度最小的子数组

1.自己思路:需要考虑极端情况 从0开始相加 然后和大于target就从左值开始减 把每次大于target的长度记录在数组里 然后最后排序数组输出第一个元素 通过率只有46% QAQ

补:可以双层for循环暴力解法

2.滑动窗口思路:与自己思路相类似 窗口一直滑动  但是判断条件值大于target应该为while循环 while循环结束后(理解成左下标更新结束后)才会再次for循环更新右下标索引!

总结:最终的正确代码与自己代码的差别就在于当满足窗口滑动条件时 自己思路是只减去一次没用做到滑动的思想 正确思路是利用while循环 达到一直滑动

59.螺旋矩阵II

https://blog.csdn.net/qq_31918961/article/details/90109988

vector二维数组赋值采取【】【】

1.自己思路 :二维数组(行在前 列在后) 图结构 中心值为n的平方 行数与列数均为n-1 接下来的问题点在于数组下标怎么变化代表顺时针(草稿纸采取了n 2 3 4 的情况对应的图 先找规律)

列0->n 行0->n-1 列n-1->0 行n-1->1(第一轮)

列0->n-2 行1->n-2 列n-2->0 行n-2->1(第二轮)

没有抓到关键逻辑 代码输出失败QAQ

2.题解思路:

基础思路在自己思路的基础上 但是!!!自己思路没有区分好每一行怎么填数值 按照自己分析为n->n-1->n-1->n-2->1

题解思路关键在于将每次填数值当成左闭右开的区间 那么则变成每次n-1的填数值

把每一条边的最后一个节点留给下一条边来处理

四个循环遍历都是左闭右开 注意行列(即二维数组下标的变化)

第二圈更新初始的行列数值即可

第一次自己写错误 忽略了中间值

第二次自己写错误 第三圈与第四圈判断条件出错

第三次自己写错误 第一行的二维数组赋值时第一个下标应该是y不应该是I值(考虑多圈的情况)

第四次 pass

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值