首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
machine_gun_lin
掘友等级
学生
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
15
文章 15
沸点 0
赞
15
返回
|
搜索文章
最新
热门
数组实现单链表
单链表常见的实现方法有两种,一种方式是定义一个结构体表示链表节点。比如: 然后就是通过next指针将链表的所有节点连接起来。如果涉及到链表节点的插入和删除操作,则只需要修改链表节点的指针即可。 这种方式有个明显的缺点,就是不能随机存取。如果要在某个节点之后插入或者删除节点,复杂…
LeetCode第216场周赛
第一题 5605. 检查两个字符串数组是否相等 对于每个数组,都连接这个数组的所有单词为一个单词,然后直接判断这两个单词是否相等即可。 第二题 5606. 具有给定数值的最小字符串 贪心,从前往后填充n位的字符串,对于当前的每一位,都填充能够满足要求的、字典序最小的字符。 满足…
LeetCode519. 随机翻转矩阵
因为n_rows和n_cols最大能到10^4,所以不能开二维数组,因为那样空间复杂度回到10^8。 题目说了调用flip和reset的次数加起来不会超过1000次,所以矩阵是比较稀疏的,我们只需要记录所有1的位置即可。 我们可以用一个哈希表记录所有1的位置。为了方便,我们把二…
数组实现双链表
之前写了数组实现单链表,提到了数组实现链表比指针实现最大的优点就是快,可以随机存取,而且不用new节点。 在图论的题目里用到邻接表,往往都是用数组实现。 数组实现双链表比单链表就多了一些对于左指针的操作。 为了实现的方便,不像在单链表实现里用一个额外的变量head去记录链表的头…
LeetCode524. 通过删除字母匹配到字典里最长单词
这题和LeetCode522. 最长特殊序列 II类似,都是在一个字符串数组中找出最长的一个“特殊序列”。 思路也和522题类似,都是对字符串数组按照长度从大到小排序,枚举的时候也是按照字符串长度从大到小枚举,只不过这题里我们要找到最长的,属于字符串s子序列的字符串。 判断某个…
单调栈
这道题就是单调栈最经典的应用,单调栈往往就是求一个数组中每个元素左边(之前)的元素中离它最近的比它小的元素。 首先很容易想到暴力做法,对于每一个元素,从当前元素的前一个元素开始往前遍历,第一个满足小于当前元素的元素就是答案,遍历完数组都不存在元素比当前元素小,则输出-1. 暴力…
LeetCode523. 连续的子数组和
因为子数组是连续的,所以判断连续的子数组的和时,我们往往开一个前缀和数组预处理出所有数的前缀和,这样能够降低求子数组的和的时间复杂度。 这题需要单独处理k为0的情况,由于数组所有元素都是非负数,所以当k为0时,如果存在两个相邻的数的值都为0,则返回true,否则返回false。…
LeetCode第215场周赛
第一题 1656. 设计有序流 可以开一个字符串数组存放字符串,用一个额外的变量ptr存放ptr的位置,插入新的字符串的时候,检查从ptr开始是否有连续的按照id递增的序列即可。 第二题 5603. 确定两个字符串是否接近 根据题意,两个字符串接近,则满足这些条件:(1)两个字…
LeetCode55. 跳跃游戏
这题是典型的贪心。 我们用一个变量canReach表示最远能到达的距离,canReach的初始值为0。 因此我们可以用canReach = max(canReach, x + nums[x])更新当前可以到达的最远距离。 说明最后一个位置可达,返回true。 如果数组遍历结束之…
LeetCode第52场双周赛
第一题 1859. 将句子排序 题目链接:1859. 将句子排序 将单词切成只含英文字符的单词和数字的一对pair<string, int> 然后根据第二关键字对 pair 排序 排序后,把单词加到答
下一页
个人成就
文章被点赞
6
文章被阅读
29,048
掘力值
1,376
关注了
19
关注者
3
收藏集
11
关注标签
33
加入于
2017-10-05