首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法与数据结构练习集
我想问问天
创建于2022-04-10
订阅专栏
记录一下自己刷提的题解和思路
暂无订阅
共18篇文章
创建于2022-04-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
前缀和+哈希表方法笔记
前言 374周赛Q4没做出来,看了灵神的前缀和+哈希表的文章,学习到一些东西记录一下。 LeetCode: 字母与数字 做出来这道题可以学习到的一些知识: 1.学习到从字符串数组转换到数值数组的思路
LeetCode-周赛-370Q4 (树状数组)
Q4:100112. 平衡子序列的最大和 解题思路: 这道题对我来说挺难的,写了好久也没有写出来,一开始想法是直接用dp,dp[i]是以nums[i]结尾的最大元素和,但是写的时候发现dp[i]= m
LeetCode-369周赛记录
Q1: https://leetcode.cn/problems/find-the-k-or-of-an-array/description/ 这个第一题倒是不复杂,但是问题是这个文字描述太绕了,根本
差分数组的介绍和使用
前言: 有的时候我们需要对一个数组范围进行多次批量操作,在数组长度很小的时候,直接遍历数组进行操作就可以了。但是当数组长度很大的时候,批量操作很多次效率就会很低,有没有什么快速的方式可以完成这样的操作
单调栈学习和使用
前言: 今天来讲一下单调栈,它定义是非常简单的,首先栈是一种先进后出、后进先出的数据结构。而单调栈,就是说栈中的元素是严格单调递增或者递减的。它主要用来解决的问题:找到前一个或者后一个的最大或者最小元
并查集介绍和常用模板
# 前言: 并查集(Union-find set 也叫Disjoint Sets)是图论里面一种用来判断节点之间是否连通的数据结构,学会使用它可以处理一些跟节点连通性的问题。它有两个很重要的方法: *
leetcode-135-candy(分发糖果)
老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。 每个孩子至少分配到 1 个糖果。 相邻的孩子中,评分高的孩子必须获得更多的糖果。 解释: 你可以分别给这三个孩子分发 2、1、2 颗糖果。 解释: 你可以分别给这三个孩子分发 1、…
leetcode6-ZigZagConversion
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。 关键就在于遍历s的时候选择第几个数组去放入,从上往下的时候数组下标是递增的,从下斜着往上是递减的,开…
leetcode53 最大子序和
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 其实感觉分治法不如动态规划来的清晰,但…
leetcode62 (不同路径)Unique Paths
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不超过 …
leetcode63 Unique Paths II(不同路径II)
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不超过 …
要不要组队来刷leetcode呀
最近跟几个同学一起建了一个刷题的群,相互学习学习,就写写题解,推广推广吧。(虽然我知道并没有啥粉丝) 之前大学的时候其实我觉得算法和数据结构没啥大用处,后来我发现我错了,在面试中经常会用,而且越深入,看的源码越多,发现其实程序真的就是算法加数据结构。就像咱们java的集合类,h…
142环形链表II
这是leetcode的142题,朋友说这是链表中比较经典的快慢指针题目,就去做了一下,不过没用快慢指针做出来。 用的hash写的,毕竟hash写法比较容易。但是快慢指针的方式很巧妙,就像用两个已知速度的运动员去测量一个跑道是否是环形的。 用现实的例子听起来很蠢。。。不过方法是听…
leetcode面试题0404_检查平衡性
LeetCode的面试题0404,题目地址。 实现一个函数,检查二叉树是否平衡。在这个问题中,平衡树的定义如下:任意一个节点,其两棵子树的高度差不超过 1。 这个是考察二叉树的深度遍历的题目,主要是记录一下思路吧,难度并不大。 只要差距是大于1的就是不平衡的。 空间复杂度:1,…
leetcode98_是否有效二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 根节点的值不能大于右子树的值。所以从左中右的顺序来看是一个递增的顺序。于是我们可以使用遍历左子树,根节点,…
leetcode228-汇总区间
给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。 找到不是连续区间可以想到只要两个相邻的元素相差是大于1的就不是连续的。有两个这个总体思路之后, 再在细节上进行优化,这个题目的测试用例涉及到了整型范围的问题,边界差一就溢出了,这个点要考虑一下。
leetcode114-二叉树展开为链表
一开始最初的想法就是遍历一次二叉树,然后把节点依次存入到一个新的链表中。后来写完后发现题目说的是原地展开为一个单链表,那么就是不能创建空间复杂度是大于O(1)的数据结构了(原地算法要求引入的数据结构是常量级别的)。 使用了常量级的参数来实现了新的算法,方式非常的巧妙。我没想出来…
leetcode-954-二倍数对数组
leetcode-954链接 方法一: 找出数组中成对的的二倍数组对,第一反应就是求每个数组的值看,是否有当前值的2倍或者1/2,如果每个值有 2倍数或者1/2的数,那么就返回true。然后这个2倍数