首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构+算法
Forlogen
创建于2021-07-05
订阅专栏
有关数据结构和算法的基础介绍,以及LeetCode相关题目
等 1 人订阅
共204篇文章
创建于2021-07-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
排序问题
在数据结构中,常常会将所存在的一组数据排序,然后再进行下面的处理。 排序是把一个数据元素序列整理成按照关键字递增(或递减)排列的过程‘。可分为内部排序和外部排序。 1.冒泡排序: 重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复...
316 + 1081 - 去除重复字母 - python
给你一个仅包含小写字母的字符串,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。题目要求去除字符串中重复的字母,即使得字符串中的每个字母只能出现一次。同时保证最后的字符串的字典序最小,且最后字符串中字母间相对的前后...
134 - 加油站 - Python +Java
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i]升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第i+1个加油站需要消耗汽油 cost[i]升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -...
[快慢指针] 283 - 移动零 - Java
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。int right = nums.但是题目要求保证非零元素的相对顺序不能发生改变,那么这种方法就无能保证了。for(int i ...
129 - 求根到叶子节点数字之和 - Python + Java
给定一个二叉树,它的每个结点都存放一个 10-9 的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径1->2->3 代表数字123。计算从根到叶子节点生成的所有数字之和。说明: 叶子节点是指没有子节点的节点。从根到叶子节点路径 1->2 代表数字 12.从根...
151 - 翻转字符串里的单词 - Java + Python
给定一个字符串,逐个翻转字符串中的每个单词。无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括...
[动态规划] 152 - 最大乘积子数组 - Java
给你一个整数数组 nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。解释: 子数组 [2,3] 有最大乘积 6。解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。如果题目要求找出数组中乘积最大的子数组对应的乘积,应该...
153 - 寻找旋转排序数组中的最小值 - Java
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。你可以假设数组中不存在重复元素。该题要求找出升序排序数组旋转后,数组中的最小值,本质上还是求数组的最小值。因此...
判断一个链表是否是回文链表 - Java
所谓回文链表,指的是它的val从前往后读和从后往前读是一样的,例如1->2->3->2->1和1->2->2->1就是回文链表,而1->2->3->3->1就不是回文链表,那么如何判断一个链表是否是回文链表呢?如果我们知道如何判断一个字符串是否是回文,那么借助辅助空间使用同样的思...
844 - 比较含退格的字符串 + 925 - 长键输入 - Java
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。解释:S 和 T 都会变成 “ac”。解释:S 和 T 都会变成 “”。解释:S 和 T 都会变成 “c”。解释:S...
Top-k问题的解法
问题描述最小的k个数1. 暴力排序法2. 大根堆、小根堆3. 所谓Top-K问题,指的是返回给定数据结构中最大/最小的K个元素,可能是本身的元素,也可能是运算结果中的元素。下面通过一简单的🌰来进行说明,如果解决这类问题。输入整数数组 arr ,找出其中最小的 k 个数。例如,输入...
从时空复杂度出发,逐步优化接雨水问题
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。.n == height.n==he...
不同的路径问题Ⅰ Ⅱ Ⅲ
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。例如,下图是一个7 x 3 的网格。从左上角开始,总共有 3 条路径可以到达右下角。1. 2....
148 - 快慢指针➕归并解决排序列表问题
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。链表中节点的数目在范围 [0, 5 * 104] 内-105 <= Node.n为链表的长度。* Definition for singly-linked list.* ListNode(int val) ...
391 - 完美矩形问题
我们有 N 个与坐标轴对齐的矩形, 其中N > 0, 判断它们是否能精确地覆盖一个矩形区域。每个矩形用左下角的点和右上角的点的坐标来表示。例如, 一个单位正方形可以表示为[1,1,2,2]。 ( 左下角的点的坐标为 (1, 1)以及右上角的点的坐标为(2, 2) )。返回 tru...
242 - 有效的字母异位词
给定两个字符串 s 和 t,编写一个函数来判断t是否是s的字母异位词。说明:你可以假设字符串只包含小写字母。 简单题就使用简单的方法来解,题目要求判断两个字符串s和t是否是字母异位词,即两个字符串中是否包含相同的字母,只是位置顺序不同。因此,可以获取字符串的列表形式,按字母序排序...