算法
文章平均质量分 80
bailang_zhizun
这个作者很懒,什么都没留下…
展开
-
算法 - 合并多个排序链表
1、题目描述2、算法思想2.1、暴力法2.2、排序后相连可以用vector,也可以用list存储,一般情况下,如果不知道数据量有多少,用list的效率和内存使用上更优。代码中采用的是list,list自带的sort的函数时间复杂度应该是O(nlogn)。2.3、分治法理论上,当数据足够多时,分治法的时间复杂度是最优的。3、代码实现3.1、暴力法代码实现class Solution {public: ListNode* mergeKLis..原创 2020-08-14 16:32:01 · 867 阅读 · 0 评论 -
数据结构 - 栈的应用(符号匹配、中缀转后缀表达式、后缀表达式计算)
1、符号就近匹配就近匹配算法思路:1、从第一个字符串开始扫描2、当遇见普通字符串时忽略3、当遇见左符号时压入桟中4、当遇见右符号时,从桟中弹出栈顶符号,并进行匹配: 匹配成功:继续读入下一个字符 匹配失败:立即停止,并报错5、结束: 成功:所有字符扫描完毕,且栈为空 失败:匹配失败或所有字符扫描完毕但栈非空代码实现:#include "dm06_LinkStack.h"bool isLeft(c...原创 2020-07-30 10:20:39 · 673 阅读 · 0 评论 -
算法 - 几种常见的排序算法(选择、插入、冒泡、希尔、快速、归并)
几种常见的排序算法:选择排序、插入排序、冒泡排序、希尔排序、快速排序、归并排序。1、选择排序基本思想:每一趟(例如第i趟,i=0,1,...,n-2),在后面的n-i个待排的数据元素中选出关键字(最小的元素),作为有序元素序列的第i个元素。void myswap(int a[], int& i, int& j){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp;}//选择排序void SelectSort(int a[], int原创 2020-07-29 14:38:36 · 656 阅读 · 0 评论 -
Python - 实现对字符串的Z形转换
基于Python实现对字符串的Z形转换1、题目描述 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R 之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR" 示例 1:输入: s = "PAYPALISHIRING", numRows = 3...原创 2018-06-11 13:49:37 · 1211 阅读 · 0 评论 -
Python - 实现对求解最长回文子串的动态规划算法
基于Python实现对求解最长回文子串的动态规划算法1、题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"2、求解 对于暴力求解在这里就不再骜述了,着重介绍如何利用动态...原创 2018-06-01 16:40:14 · 18810 阅读 · 5 评论 -
C/C++ - int转float时精度损失问题
float类型数据在内存中的存储方式。int转float的经度损失。原创 2018-11-21 11:24:22 · 6768 阅读 · 1 评论