代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
2023-12-29 16:30:33
刷题建议
- 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。
- 写博客,将自己的感悟沉淀下来,不然会忘
- 大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题,做了哪些调试,而不要只是把代码甩出来,这样方便大家帮忙快速定位问题。
博客内容:(博客记录以及打卡格式)
977 有序数组平方
自己看到题目的第一想法
- 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
- 非递减=递增或者有相同的val
- 设计两个指针,一个指向所有负数,一个指向所有正数,比较两个指针的val的平方的值,谁大,就将值放到新数组,最后将新数组反转
看完代码随想录之后的想法
- 先想暴力破解,每个数平方之后,排个序,这个时间复杂度是 O(n + nlogn), 可以说是O(nlogn)的时间复杂度
- 想办法优化暴力破解–>双指针,新数组
自己实现过程中遇到哪些困难
list = [float('inf')]* length
初始化列表并且将元素中每个列表设置为正无穷大,不然会报错
相关题目
209 长度最小子数组
自己看到题目的第一想法
- 暴力破解,双层循环,第一层i从数组第一个数到最后一个数
- 第二层j从i到最后一个数,j每次循环中设置一个区域变量sum=0,一直加到sum >= target,记录长度到数组,然后i继续循环
- 优化,双指针(滑动窗口),但是没思路。
看完代码随想录之后的想法
- 用一个for循环做两个for循环做的事情
- for循环里面的j一定指向区间终止位置,因为如果是起始位置,那么和暴力破解一样,所以用动态移动的方式移动起始位置
- 滑动窗口精华==》如何移动起始位置?
- 起始位置不变,终止位置一直向后移动,等到>=target,终止位置就不用向后移动了(数组全是正整数),此时起始位置向前移动一位,记录此时的长度
- 双指针是一种逻辑思路,不是真指针
自己实现过程中遇到哪些困难
代码一次OA,重要在于理解思想,代码语言和数学语言一样,只是思想的表达
59 螺旋矩阵II
自己看到题目的第一想法
看完代码随想录之后的想法
自己实现过程中遇到哪些困难
今日收获,记录一下自己的学习时长
文章来源:https://blog.csdn.net/m0_46266264/article/details/135283542
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!