| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 代码随想录算法训练营第二天||977.有序数组的平方 ||209.长度最小的子数组||59.螺旋矩阵II -> 正文阅读 |
|
[数据结构与算法]代码随想录算法训练营第二天||977.有序数组的平方 ||209.长度最小的子数组||59.螺旋矩阵II |
?977.有序数列的平方 题目链接:977. 有序数组的平方 - 力扣(LeetCode) 学习视频地址:双指针法经典题目 | LeetCode:977.有序数组的平方_哔哩哔哩_bilibili 看到此题的一个想法:因为数组是非降序排列,所以同时对两边元素的平方大小进行对比,所以我们要使用双指针法。 实现中遇到的困难: 因为笔者刚开始学习stl,对vector容器的使用并不熟练,所以在新数组的创建上出了一点问题。算法思想是明白的。 看完代码随想录的收获:对if循环条件有更深刻的认识,不要随便乱添加判断语句,有时会出现一些缺少判断的情况。促进了我对vector容器的学习。 源代码:
209.长度最小的子数组 题目链接:209. 长度最小的子数组 - 力扣(LeetCode) 学习视频链接:拿下滑动窗口! | LeetCode 209 长度最小的子数组_哔哩哔哩_bilibili 看到这个题的第一个想法:暴力解法。但是LeetCode直接显示超时了。 实现中遇到的困难:没有想到创造一个储存结果的变量。没有想去判断length和result的大小,直接输出length了出现了很大的问题。对c++语法不是很熟悉。 看完代码随想录的收获:学会了新的判断方式。学会了滑动窗口的本质。 源代码:
59.螺旋矩阵 题目链接:59. 螺旋矩阵 II - 力扣(LeetCode) 视频链接:一入循环深似海 | LeetCode:59.螺旋矩阵II_哔哩哔哩_bilibili 看到题目的第一想法:想到了要控制边界,然后依次循环每一个边。 实现遇到的困难:想不出循环的次数,对边界没有设限。 看完代码随想录得到的收获:对模拟过程有了一个新的认识,对边界的把控有了新的理解 源代码:
对数组的总结:常用方法:1.二分法: 使用二分法的时候,要对循环的边界有明确的认定,要先确定是“左闭右闭”oder“左闭右开”等等,严格遵守循环不变量原则。 时间复杂度:O(logn) 2.双指针法: 可以在一个for循环下完成两个for循环得工作 时间复杂度:O(n) 3.滑动窗口: 能根据自序列的大小不断调整起始位置 时间复杂度:O(n) 4.模拟行为: 考察对“循环不变量”的遵守。 今日收获:学会了移动窗口,理解了模拟行为的实现。 学习时长:3小时左右,螺旋矩阵让我有点头疼。写博客也花了不少时间。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:46:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |