数据结构与算法
文章平均质量分 74
蒸汽金鱼♡
这个作者很懒,什么都没留下…
展开
-
经典排序算法
排序算法文章目录排序算法前言一.冒泡排序二.选择排序三.插入排序四.希尔排序五.快速排序六.归并排序七.堆排序八.计数排序九.桶排序前言基本排序算法(java)一.冒泡排序每次比较,将大值向后两两交换//冒泡 public int[] BubbleSort(int[] array){ for (int i = 0; i < array.length; i++) { for (int j = 0; j < array.length-i-1原创 2021-11-16 17:13:12 · 583 阅读 · 0 评论 -
leetcode(十)---双指针
文章目录前言一、盛水最多的容器二、三数之和三、 删除有序数组中的重复项四、 实现strStr()五、颜色分类总结前言双指针相关题解一、盛水最多的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。class Solution { public int maxAre原创 2021-09-07 21:12:02 · 631 阅读 · 0 评论 -
leetcode(九)---动态规划
前言动态规划相关题解一、最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。class Solution { public String longestPalindrome(String s) { if(s==null||s.length()<2){ return s; } int start=0; int end=0; int len=1; int n=s.原创 2021-09-05 16:56:31 · 457 阅读 · 0 评论 -
leetcode(八)---二分查找
文章目录前言一、搜索旋转排序数组二、在排序数组中查找元素的第一个和最后一个位置2.读入数据总结前言二分查找一、搜索旋转排序数组整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2原创 2021-09-03 20:01:27 · 581 阅读 · 0 评论 -
leetcode(七)---回溯
文章目录前言一、电话号码的组合二、括号生成三、全排列四、子集五、单词搜索总结前言回溯算法一、电话号码的组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。class Solution { List<String> list = new ArrayList<>(); String[] letter_map = {" ","*","abc",原创 2021-08-17 21:37:54 · 101 阅读 · 0 评论 -
leetcode(六)----递归
文章目录前言一、两数相加二、合并两个有序链表三、Pow(x,n)四、反转链表五、回文链表前言递归一、两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头class Solution { public ListNode addTwoNumbers(ListNode l1, ListNod原创 2021-08-16 21:53:16 · 97 阅读 · 0 评论 -
leetcode(五)---贪心
文章目录前言一、盛水最多的容器二、跳跃游戏三、买卖股票的最佳时机II四、加油站五 、最大数六 、递增的三元子序列前言贪心算法相关题解一、盛水最多的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。class Solution { public int maxArea(int[] heig原创 2021-08-16 16:45:16 · 171 阅读 · 0 评论 -
leetcode(四)---排序
前言提示:排序相关题解一、三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。public class Solution { public static List<List<Integer>> threeSum(int[] nums){ List<List<Integer>原创 2021-08-07 20:53:46 · 147 阅读 · 0 评论 -
leetcode(三)----链表
文章目录链表相关题解一、两数相加二、删除链表的倒数第N的节点三、合并两个有序链表四、复制带随机指针的链表总结链表相关题解一、两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。class Solution{ public ListNode addTwoNumbers(ListNode l1,ListNode原创 2021-07-22 21:40:07 · 147 阅读 · 0 评论 -
leetcode(二)----dfs与bfs
文章目录前言一、被围绕的区域二、使用步骤1.引入库2.读入数据总结前言深度优先与广度优先相关题解一、被围绕的区域给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ ,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。class Solution { public void solve(char[][] board) { int m = board.length; int n = bo原创 2021-07-07 11:26:37 · 79 阅读 · 0 评论 -
leetcode(一)--- 树
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、验证二叉搜索树二、判断二叉树是否对称三、填充每个节点的下一个右侧节点指针四、二叉树的最大深度五、二叉树最近的公共祖先六、二叉搜索树的第K小的元素前言题解记录,TOP面试题,树相关。一、验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。class S原创 2021-06-22 20:36:44 · 251 阅读 · 0 评论