
基础算法
文章平均质量分 84
E_Mlls
此号已弃用,新个人主页地址:https://juejin.im/user/5cedf2186fb9a07ed2244fbc
展开
-
关于三种基本排序算法的速度直观分析
三种排序算法的介绍插入排序:插入排序分为2种,直接插入排序和折半插入排序。插入排序的算法很简单,即从第二个元素开始,标记当前元素,从前扫描数组,每扫描一个数组中的数就将其往后移动一位,直到遇到一个小于(或大于,与排序顺序有关)标记元素的数,至于为什么遇到一个就可以停止当前循环,是因为遇到的这个小于标记元素的数前面的所有数据都已经被排好次序了。折半插入排序则是利用了这一点,使得扫描的次数更快一点原创 2017-04-30 22:48:36 · 1375 阅读 · 0 评论 -
Dijkstra最短路径算法分析
Dijkstra算法属于稍微复杂一些的算法,理解起来也不是那么容易,当初在网上搜最短路径算法的时候感觉大多数博文都讲的不是那么通俗,主要是代码,许多需要注释的地方都省略了。也不是说这样做不好,注释的越少越能提高程序员阅读代码的能力。但是对新人来讲,先给一个注释详细的代码,然后接下来自己多动手敲几遍(不要看之前的代码),这样可能更有效果。要想理解算法不自己完整地敲一遍是不可能的。算法分析:...原创 2017-05-06 23:22:26 · 567 阅读 · 0 评论 -
Leetcode题解:405. 数字转换为十六进制数
题目描述:数字转换为十六进制数(Convert a Number to Hexadecimal)给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字 符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。...原创 2019-01-24 15:16:09 · 351 阅读 · 0 评论 -
求最长回文子串——Manacher算法详解
回文子串问题回文子串问题通常会给出一个字符串,然后找出这个字符串中最长的回文子串。回文串即为正读和反读一致的字符串,比如”aa",“abba”,"abcba"等。判别一个字符串是否为回文串很容易想到的方法是:设立两个游标,分别在串的最左和最右,让这两个游标向对方逼近的同时比较这两个游标的值但是这里我们要讨论的是回文子串,所以上述方法暴露出一个严重的缺陷:难以确定右游标(因原创 2019-01-24 23:21:47 · 257 阅读 · 0 评论 -
Leetcode题解:287. Find the Duplicate Number寻找重复数
代码实现只想抄个答案把题过了的可以直接复制下面的代码:class Solution {public: int findDuplicate(vector<int>& nums) { int slow = 0, fast = 0, tar = 0; do { slow = nums[slow]; fast = nums[nums[fast]]; }...原创 2019-01-28 18:17:19 · 213 阅读 · 0 评论