
算法
算法
HYTZZ
你才懒
展开
-
算法
数组 删除排序数组中的重复项 删除排序数组中的重复项 II 移除元素 移动零 数组中重复的数字 旋转数组 螺旋矩阵 两数之和 三数之和 四数之和 较小的三数之和 最接近的三数之和 合并两个有序数组 寻找旋转排序数组中的最小值 寻找旋转排序数组中的最小值 II 除自身以外数组的乘积 ...原创 2021-05-10 13:01:53 · 54 阅读 · 0 评论 -
数据结构与算法
数据结构 数据对象在计算机中的组织方式 逻辑结构 物理存储结构 数据对象必定与一系列加在其上的操作相关联 完成这些操作所用的方法就是算法 抽象数据类型(Abstract Data Type) 数据类型 (抽象—封装) 数据对象集 数据集合相关联的操作集 抽象:描述数据类型的方法不依赖于具体实现 与存放数据的机器无关 与数据存储的物理结构无关 与实现操作的算法和编程语言均无关 ...原创 2021-05-02 17:38:25 · 63 阅读 · 0 评论 -
线性表
线性表 List MakeEmpty():初始化一个空的线性表 ElementType FindKth(int k,List L):根据位序列K,返回相应元素 int FInd(ElementType X, List L): 在线性表L中查找X的第一次出现的位置 void Insert(ElementType X, int i,List L):在位序i前插入一个新的元素X int Length(List L):返回线性表L的长度 实现方式 数组 连续性 可以随机访问 稀疏数据—克服数组的缺点 链表原创 2021-05-02 09:54:18 · 73 阅读 · 0 评论 -
五毒神掌
职业顶尖选手 1.分解—构建知识树、知识模型 2.刻意练习 3.有效反馈 切题四件套 1.理解题目的意思 2.思考所有的可能解法 3.分析每种解法的思路 4.补充测试用例 五毒神掌 第一遍 看题目(10~15分钟),如果不会直接看解法,记忆 第二遍 默写程序、调试(先在头脑里面调试,实在不行再在编译器里调试) 第三遍 隔一天再写一遍程序,思考那里写错了 第四遍 一周后再写一遍,思考和其他的知识模型的关联 第五遍 面试前写一遍 ...原创 2021-04-24 20:14:30 · 292 阅读 · 0 评论 -
归并排序
归并排序 思考给定两个已经排序的数组,如何将两个数组合并成一个数组 function merge(arr1,arr2){ const temp= []; let i = 0; let j = 0; let tempSize = 0; while(i < arr1.length && j < arr2.length){ if(arr1[i] <= arr2[j]){ temp.push(arr1[原创 2021-04-21 20:10:06 · 67 阅读 · 0 评论 -
冒泡排序
BubleSort 复杂度分析 第一个for循环执行了length次 第二个for循环执行了length - i次 两个fore循环执行了length*(length-i)次,当length无限大复杂度是O(length^2) 思考 使用两个指针 j 和 j+1,因为要交换两个元素,所以需要两个指针分别指向需要交换的元素两个指针可以表示一定的范围,或者快慢两个 每一轮外层循环,都把最大的一个元素放到最后的位置(内层for不停的交换(即暂存最大值)两个相邻的元素),模型相当于把本轮的最大值从原创 2021-04-16 10:54:09 · 92 阅读 · 0 评论