
算法与数据结构
文章平均质量分 87
阿常呓语
分享快乐,留着感动。
展开
-
[leetcode 257]257. 二叉树的所有路径
leetcode 257原创 2022-03-03 22:56:38 · 222 阅读 · 0 评论 -
二路归并排序Python实现-III
二路归并排序Python实现-III归并排序 是一种 效率比较高并且稳定的算法。时间复杂度 O(NLog(N)),空间复杂度 O(N).归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序 有两个步骤,第一个 '归' 其实就是不断划分数组的长度, 把排序问题原创 2021-03-14 10:52:48 · 785 阅读 · 1 评论 -
LeetCode组合问题汇总
LeetCode组合问题汇总文章目录LeetCode组合问题汇总77. 组合解法1 递归 + 回溯解法1-1 减枝优化39. 组合总和解法1 递归+ 回溯解法1-1 递归 + 回溯40. 组合总和 II解法1 递归 + 回溯216. 组合总和 III解法1 递归 + 回溯解法1-1 减枝处理377. 组合总和 Ⅳ解法1 递归+ 回溯解法1-1 记忆 递归解法2 动态规划总结 今天来总结一下 LeetCode 中 的组合问题, 下面搜索leetcode 题目里面的组合 问题,有5道题 左右原创 2021-02-14 17:47:14 · 1169 阅读 · 1 评论 -
二路归并排序Python实现-II
数组的二路归并排序 python实现原创 2020-12-24 14:00:25 · 556 阅读 · 2 评论 -
程序员的自我修养-算法递归
程序员的自我修养-算法递归文章目录程序员的自我修养-算法递归1 递归概念引入1.1 来举一个简单的例子1.2 递归的一些必要条件2 如何使用递归爬楼梯问题括号生成问题组合问题路径计数问题3 递归的效率问题总结参考文档1 递归概念引入 首先,思考一个小小的问题,计算机 是如何解决问题的?在计算机的世界里面 只有简单的if else , for loop , while ,do while , recursion 等这些简单的指令集,计算机 是一个没有感情的机器,计算机更加喜欢 做的事情 是原创 2020-11-17 07:18:31 · 287 阅读 · 0 评论 -
计算器中的表达式 是如何 运算的?
文章目录计算器中的表达式 是如何 运算的?什么是 前缀表达式什么是中缀表达式什么是后缀表达式为啥需要前缀表达式,后缀表达式 ?如何将中缀表达式转化为 后缀表达式呢?后缀表达式如何计算的 ?[150. 逆波兰表达式求值](https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/)计算器中的表达式 是如何 运算的?前缀表达式 中缀表达式 后缀表达式 这些基础概念什么是 前缀表达式前序表达式就是前缀表达式,不含括号的算术表达式原创 2020-09-24 21:41:06 · 3088 阅读 · 0 评论 -
02-堆排序-shift_up操作
堆的数据结构1 MaxHeap 数据结构定义第一个是 存放数据的数组,第二是 数据数量用 count 表示template<typename Item>class MaxHeap {private: Item *data; // 定义一个数组存放堆,从下标 1 开始 int count; // 记录当前堆的元素的个数 int capacit...原创 2020-02-02 17:25:56 · 1362 阅读 · 0 评论 -
堆的数据结构-shift_down操作
堆的数据结构1 MaxHeap 数据结构定义第一个是 存放数据的数组 data 表示,第二是 数据数量用 count 表示,第三个 记录堆最大容量 用 capacity 表示template<typename Item>class MaxHeap {private: Item *data; // 定义一个数组存放堆,从下标 1 开始 int c...原创 2020-02-02 16:54:03 · 2043 阅读 · 0 评论 -
partition过程详解
partition 过程详解介绍给定一个数组arr,和一个数num, 请把小于等于num的数放在数组的左边, 大于num的数放在数组的右边。要求额外空间复杂度O(1), 时间复杂度O(N)简单来说 把一个数组 分成如下图思路如下:i当前 待考察元素.遍历数组的过程中,要保证 arr[0,j]<=num , arr[j+1,i-1]>num其中 绿色部分 是小于等于...原创 2020-01-24 05:01:49 · 2800 阅读 · 0 评论 -
C++ 实现选择排序算法
C++ 实现选择排序算法思路选择排序选择排序(升序) 就是 从一组数字 选出 一个最小的元素 放在 第一个位置之后在 剩下 的 元素中, 在选择一个 最小 的 位置 放入 第二位置最后只剩下 一个元素, 整个排序过程完成.#include <iostream>using namespace std;void selectSort(int *arr, i...原创 2020-01-05 12:04:34 · 611 阅读 · 0 评论 -
匹配括号问题
匹配括号问题原创 2019-07-27 10:22:32 · 281 阅读 · 0 评论 -
3.无重复字符的最长子串
3 无重复字符的最长子串最近好久没有更新文章了,就更新一篇 LeetCode 的一篇算法的题目.题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度...原创 2019-06-22 07:24:25 · 232 阅读 · 0 评论 -
用python 判断一个单链表是否有环
用python 判断一个单链表是否有环.思路1:判断一个单链表是否有环,可以用 set 存放每一个 节点, 这样每次 访问后把节点丢到这个集合里面.其实 可以遍历这个单链表, 访问过后,如果这个节点 不在 set 里面, 把这个节点放入到 set 集合里面.如果这个节点在 set 里面 , 说明曾经访问过, 所以这个链表有重新 走到了这个节点, 因此一定有环如果链表都走完了, ...原创 2019-01-27 11:57:04 · 6338 阅读 · 0 评论 -
打印之字矩阵
题目意思是这样打印矩阵分析一下可以考虑 要这样打印矩阵 要考虑 斜着打印,通过两个点 来定义 一条斜线, 然后 打印这个 斜线 上的 所有点,就可以了. 下图就是分析思路:定义 A , B 两点, 每个点都有自己的行动轨迹, A 向 右走, 走到 最右边, 往下走.B 先 向下走, 走到最后一行,开始向右走,A 和B 最终 会相遇, 如果 A 和B 再次 相遇, 则 A...原创 2019-01-05 12:48:00 · 422 阅读 · 0 评论 -
希尔排序Python实现
python 实现希尔排序原创 2017-10-18 12:25:56 · 537 阅读 · 0 评论 -
希尔排序c语言实现
希尔排序c语言实现原创 2017-10-18 11:48:48 · 2557 阅读 · 0 评论 -
Python中的排序
Python 实现 冒泡, 选择,快速排序,插入排序。原创 2017-10-13 12:05:00 · 642 阅读 · 0 评论 -
堆排序c语言实现
c语言实现堆排序 来看下 下面 是 不是堆 ?左面 是 小顶堆 ; 右面是 大顶堆看看下面的图形左边 3原创 2017-10-23 21:14:30 · 3697 阅读 · 0 评论 -
堆排序python语言实现
python实现 堆排序原创 2017-10-24 08:02:11 · 336 阅读 · 0 评论 -
二分查找算法python实现
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;原创 2017-10-24 16:17:53 · 932 阅读 · 3 评论 -
二路归并排序Python实现
看了网上一些写法,总感觉 有点复杂,所以我参考之前写的程序,用Python 改写了一个 二路归并排序 算法 。二路归并排序主要运用了“分治算法”,分治算法就是将一个大的问题划分为n个规模较小而结构相似的子问题。 这些子问题解决的方法都是类似的,解决掉这些小的问题之后,归并子问题的结果,就得到了“大”问题的解。核心伪代码 :def MergeSort(array,p,q): if p<...原创 2017-10-16 16:33:42 · 2536 阅读 · 0 评论 -
二路归并排序c语言实现
二路归并排序 c 语言实现。原创 2017-10-16 16:07:05 · 9714 阅读 · 1 评论 -
算法题目leetcode(1)
没事的时候,到letcode 看一下 算法题目 ,提高自己的编程思想, 总结一下,记录一下. 由于水平有限,如果发现有什么问题, 欢迎给我留言.来看题吧. 1 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1: 输入: 121 输出: true示例 2:输入: -121 输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 12...原创 2018-04-15 23:04:33 · 480 阅读 · 0 评论 -
猫狗队列问题
猫狗队列 【 题目】 宠物、 狗和猫的类如下:原创 2018-12-30 10:06:00 · 261 阅读 · 0 评论 -
C语言实现插入排序
c 语言实现插入排序原创 2016-03-17 19:04:00 · 794 阅读 · 0 评论