4.18 leetcode 977,209,59

1)977.有序数组的平方

暴力解法没啥好说的直接拿下;

1))

双指针)

看完解析独立完成的时候出现的问题

思路问题) 这里的双指针指的是原数组的头尾指针 reslut数组的k只是作为一个由有序数组特质所应用的一个放入参照位置 

2))代码方面

for(int i=0, j=nums.size()-1;i<=j;)//正确
for(int i=0;int j=nums.size()-1;i<=j)//错误

在这个调试这个错误上花费较长时间 思考过后 前者for的含义为ij初始化以及满足i<j ;

后者则表示必须满足j指向nums最后一个元素 导致产生数组索引为负数的编译错误;

3))其他的小tips

result[k--]=nums[j]*nums[j];

在这里k--先执行再递减比

result[k]=nums[j]*nums[j];
k--;

这种写法简洁也不容易遗忘;

2)209最小子数组(直接看解析的 完全没有思路)

1))暴力解法在break的节点放置位置上出错 大致思路类似于最短路径 不断遍历寻找最优解

2))双指针直接看的解析总结:核心是动态移动开始位置 何时移动

1)))独立解题忽略了sum减去最开始的首个位置的值

(刚开始刷算法细节还是处理不到位啊...)

3)59 螺旋矩阵 (依旧没有思路)

核心思想 是始终保持左闭右开 

卡住的地方在于我想不到遍历的顺序怎么实现和头尾两端怎么移动格子;

自己再做题 对于遍历行移动纵坐标和遍历列行移动横坐标这个对应关系混乱;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值