![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 69
The__Song
这个作者很懒,什么都没留下…
展开
-
leetcode 1312. 字符串成为回文串的最少插入次数--题目进阶:添加最少的字符让字符串成为回文串
与牛客CD124题目一致题目描述:给定一个字符串str,如果可以在str的任意位置添加字符,请返回在添加字符最少的情况下,让str整体都是回文字符串的一种结果。示例:输入:“zzazz” 输出:“zzazz”输入:“abca” 输出:“acbca”分析:将此题目分为两步,首先是找到使字符串成为回文串的最少插入次数,再找到合适的位置插入字符即可。第一步:动态规划:当前字符串要变成回文,那只要把不一样的找出来就可以。则求出反转的字符串和当前字符串的最长公共子序列,原字符串长度减去最原创 2021-05-09 23:22:36 · 629 阅读 · 0 评论 -
与其他题解都不一样的排序方法--剑指 Offer 45. 把数组排成最小的数
剑指 Offer 45. 把数组排成最小的数题目要求:输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例:输入: [3,30,34,5,9]输出: “3033459”题解的一般排序方法: 使用自定义排序若拼接字符串 x + y > y + x,则 x “大于” y ;反之,若 x + y < y + x ,则 x “小于” y .这里提出另外一种排序的方法:对于两个字符串,如果长度相等,(如34和52)从头开始每一位进行比原创 2021-04-20 22:08:41 · 125 阅读 · 1 评论 -
算法图解
《算法图解》各章学习1、算法简介二分法二分查找法,用于有序元素列表,以一半为界分开,确定元素在哪一部分,继续前述操作。速度最快,包含n个元素时为 $ \log_2 n$大O表示法用于表示算法的速度,O()。真正的速度需要乘以时间常数c,一般分析时不考虑。2、选择排序数组数组在内存中储存的信息是连在一起的,方便读取操作。链表链表的信息在内存中是无序的,下一个内存地址由上一个内存中的信息给出,方便插入和删除操作。选择排序不断遍历整个无序列表,将元素有序排列出来,速度为O(n×n)或O(原创 2021-03-06 15:10:00 · 2932 阅读 · 0 评论 -
十大排序算法(含python代码)
排序算法几种常见的排序算法可以如下图概述其中稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同1、冒泡排序重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,越小的元素会经由交换慢慢"浮"到数列的顶端。算法步骤比较相邻的元素;如果第一个比第二个大,就交换他们两个;移动一位继续比较下一对元素,知道比较完随后一个元素,此时最后的元素会是最大的数。针对上面比较过的元素重复以上的步骤,除了最后一个。每次循环对越来越少的元素重复上面的步骤,直到没有任何一对元素需原创 2021-03-02 22:34:05 · 190 阅读 · 0 评论