首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法
木有寸
创建于2021-10-30
订阅专栏
数据结构与算法学习
暂无订阅
共46篇文章
创建于2021-10-30
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
用JavaScript刷leetcode第703题-设计循环队列
一、前置知识 1.1 队列 队列是一种操作受限制的线性表,其特点是先进先出,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作 1.2 队列缺点 不能利用有效空间,执行
用JavaScript刷leetcode第138题-复制带随机指针的链表
每个节点,将复制的节点放到被复制的节点前面。 修正random指针,原因是复制节点的random指向被复制品。 也需要修正next指针。拆分复制的链表和被复制链表的同时,就已经修正了next指针
用JavaScript刷leetcode第86题-分隔链表
一开始觉得这题贼简单。真的是Talk is easy, show me your code, 我写的代码提交leetcode 时, 报了如下图的错,意思是说成环了。 我思索了会,是不是我处理每个
用JavaScript刷leetcode第82题- 删除排序链表中的重复元素 II
前言 一次遍历即可完成。 但是注意删除节点的操作,找得是待删除节点的前一个节点。 比较的是待处理节点和待处理的下一个节点。 需要待处理节点的上一个节点是因为需要做删除重复元素操作
用JavaScript刷leetcode第83题-删除排序链表中的重复元素
两个方法来解这道题: 1. 用一个指针一次遍历来解这道题,遇到重复的则删。 2. 用两个指针,一个指针指向未处理头,另一个指针用来遍历。
用JavaScript刷leetcode第19题-删除链表的倒数第N个节点
- 删除某个节点,要找到待删除节点的前一节点 - 两个指针pre、cur分别指向虚头、头节点 - cur走n步 - 然后pre、cur一起走 - cur指向null时,pre指向待删除节点前一节点
用JavaScript刷leetcode第24题-两两交换链表中的节点
直接三个指针(分别指向已交换尾、待交换头、待交换尾) + 迭代就可以搞定。 交换步骤可以概括为:将删掉的尾插到已完成交换的尾
用JavaScript解leetcode第25题-K个一组翻转链表
翻转前K个节点会的话,这题就很简单。 写代码的思路:翻转前K个节点,未翻转部分的节点数大于K,则迭代翻转,直到未翻转节点数小于k结束。
用JavaScript刷leetcode第61题-旋转链表
前言 想解这题很简单。 三步走:闭环 + 找尾 + 断尾。 代码可以千变万化,解题思想其实是固定的,就那么几种。
用JavaScript刷leetcode第160题-相交链表
将用两种解法解这道题:哈希表、双指针。 哈希表:存一个链表的节点,然后与另一链表比 双指针:让两个指针从不同方向遍历两个链表的每个节点,比。
用JavaScript刷leetcode第226题-翻转二叉树
本题将用递归来解题 两种思路: 先交换位置,再翻转 先翻转,再交换位置
用JavaScript刷leetcode第9题-回文数
解这题的第一思路就是直接反转整个数字。 然后自己优化了下边界判断,当传入的数是负数或者是10的倍数则一定不是回文数。 看了leetcode题解后,其实只需要反转后一半的数字,与剩下的数字比较即可。
用JavaScript刷leetcode第20题-有效的括号
前言 第一次遇见她时,我没有穿西服,没打领带,只背着VSCode。 我手里只有hash表和栈,身无分文,我该如何征服她? 我思来想去,决定以哈希表为西服,以栈为领带,来一次cosplay。
用JavaScript刷leetcode第21题-合并两个有序链表
排序问题基本都逃不过迭代和对比! 什么时候对比结束?即迭代继续的条件是? 链表问题基本要考虑头节点,避免边界判断,要用啥?
用JavaScript刷leetcode第144题-二叉树的前序遍历
前序遍历属于深度遍历,遍历顺序:根 、 左子树、 右子树。 将用 递归 和 迭代 来解这道题,这两种本质都是用栈,递归隐式的用了栈,而迭代将显示用栈。
用JavaScript刷leetcode第92题-反转链表II(部分反转)
前言 以三种迭代的方式来解决这道题 拆合:拆成 (左 + 普通反转 + 右),反转后,连接起来 拆合:拆成(左 + 反转前n个),反转后,连接起来 头插法:我理解就是 (存、删、增)
用JavaScript实现计数排序(元素可为负数)
计数排序是一个非基于比较交换位置的排序算法。 适用场景:知道数值范围的大体量排序, 比如高考分数排名。 从小到大的记录每个元素出现的次数,再把记录到的元素 push 到 新数组。
用JavaScript实现快速排序(3种写法)
- 分治,选基准值,分成比基准值小的区域,比基准值大的区域治之。 - 递归,对分区再选基准值,分成更小的两个区域,直到不能再分。 - 原地排序 + 非原地排序
用JavaScript刷leetcode第202题-快乐数
前言 刚看到看到这个题的时候,我是非常不快乐的。 但是在以后的面试遇到这道题的时候,我想我会是非常快乐的。
下一页