![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 54
大鱼飞
骑着大鱼飞
展开
-
【LeetCode】257. 二叉树的所有路径 递归 回溯法求解 100%
257. 二叉树的所有路径 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [1,2,3,null,5] 输出:["1->2->5","1->3"] 示例 2: 输入:root = [1] 输出:["1"] 提示: 树中节点的数目在范围 [1, 100] 内 -100 <= Node.val <= 100 **思路 ** /** * 思路:模拟回溯过程 * 重原创 2022-04-10 10:55:08 · 957 阅读 · 0 评论 -
【JAVA】字符串匹配算法【Leetcode】28.实现strStr() KMP
先放上学习链接 在刷力扣经常会尝试去优化代码,在做力扣28.实现strStr()的时候虽然是简单题,但是里面却有很多可以优化的地方。 以下将分为几个算法来谈 1.暴力求解 这个方法是比较简单的,只要做两层循环就可以解决问题。 时间复杂度较高,不推荐 class Solution { public int strStr(String haystack, String needle) { int n = haystack.length(); int m = needle.原创 2022-03-06 08:49:12 · 458 阅读 · 1 评论 -
快速排序算法的实现
快速排序算法的实现 简介 快速排序算法是一种冒泡排序的优化版 能做到在冒泡排序基础上降低时间复杂度的效果。 第一步: 写出将单个元素排列至指定位置的函数 仅提供非递归实现 int partsort(int* a, int first, int last) { //first和last不一定为数组的左右位置, //而是划分的区间的左右位置 //使用三数去中法,降低取到的基准值为最大值或最小值的概率 int mid; mid = (first + last) /2; if (a[first] > a原创 2021-02-24 20:25:38 · 190 阅读 · 0 评论