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 螺旋矩阵 (依旧没有思路)
核心思想 是始终保持左闭右开
卡住的地方在于我想不到遍历的顺序怎么实现和头尾两端怎么移动格子;
自己再做题 对于遍历行移动纵坐标和遍历列行移动横坐标这个对应关系混乱;