![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 53
振长策而御宇内
一只在编程海洋中遨游的小虾米
展开
-
初级算法探索——动态规划篇(三十一)
未完待续原创 2019-03-29 16:08:12 · 428 阅读 · 0 评论 -
初级算法探索——数学篇(四)
问题:罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,...原创 2018-09-28 11:10:26 · 182 阅读 · 0 评论 -
初级算法探索——数学篇(三)
问题:3的幂给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?js解决办法:/** * @param {number} n * @return {b...原创 2018-09-28 10:55:59 · 182 阅读 · 0 评论 -
初级算法探索——数学篇(二)
问题:计数质数统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。js解决办法:/** * @param {number} n * @return {number} */// 在一般领域,对正整数n,如果用(2-根号n)之间的所有整数去除,均无法整除,则n为质数。// 质数大于等...原创 2018-09-28 10:46:02 · 219 阅读 · 0 评论 -
初级算法探索——数学篇(一)
问题:Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。1.如果 n 是3的倍数,输出“Fizz”;2.如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", &原创 2018-09-28 10:31:14 · 280 阅读 · 0 评论 -
初级算法探索——字符串篇(九)
问题:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明: 所有输入只包含原创 2018-08-21 14:41:55 · 213 阅读 · 0 评论 -
初级算法探索——字符串篇(八)
问题:数数并说报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 “one 1” (“一个一”) , 即 11。 11 被读作 “two 1s” (“两个一”), 即 21。 21 被读作 “one 2”, “one 1” (...原创 2018-08-21 14:33:52 · 177 阅读 · 0 评论 -
初级算法探索——字符串篇(七)
问题:实现strStr()给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle =...原创 2018-08-21 12:06:58 · 195 阅读 · 0 评论 -
初级算法探索——字符串篇(六)
问题:字符串转整数(atoi)实现 atoi,将字符串转为整数。 在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有...原创 2018-08-21 11:56:02 · 127 阅读 · 0 评论 -
初级算法探索——字符串篇(五)
问题:验证回文字符串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: falsejs解决办法:/** * @param {string...原创 2018-08-21 11:40:37 · 131 阅读 · 0 评论 -
初级算法探索——字符串篇(四)
问题:有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明: 你可以假设字符串只包含小写字母。进阶: 如果输入字符原创 2018-08-13 11:27:27 · 217 阅读 · 0 评论 -
初级算法探索——动态规划篇(一)
问题:爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2....原创 2018-09-28 11:27:16 · 293 阅读 · 0 评论 -
判断两个RGB颜色是否接近
方法一:转换到HSV色彩空间,根据hue通道提取private static double R = 100;private static double angle = 30;private static double h = R * Math.Cos(angle / 180 * Math.PI);private static double r = R * Math.Sin(angle /...原创 2019-01-26 11:41:26 · 5654 阅读 · 1 评论 -
初级算法探索——动态规划篇(三十)
未完待续原创 2019-03-29 16:07:57 · 328 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十九)
未完待续原创 2019-03-29 16:07:38 · 326 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十八)
未完待续原创 2019-03-29 16:07:21 · 229 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十七)
未完待续原创 2019-03-29 16:06:50 · 266 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十六)
未完待续原创 2019-03-29 16:06:33 · 182 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十五)
未完待续原创 2019-03-29 16:06:18 · 184 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十四)
未完待续原创 2019-03-29 16:05:59 · 191 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十三)
未完待续原创 2019-03-29 16:05:43 · 196 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十二)
未完待续原创 2019-03-29 16:05:27 · 212 阅读 · 0 评论 -
初级算法探索——动态规划篇(二十一)
未完待续原创 2019-02-27 14:18:18 · 256 阅读 · 0 评论 -
初级算法探索——字符串篇(三)
问题:字符串中的第一个唯一字符 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项:您可以假定该字符串只包含小写字母。js解决办法:/** * @param {string} s * @return {number} *///...原创 2018-08-13 11:10:11 · 181 阅读 · 0 评论 -
初级算法探索——字符串篇(二)
问题:颠倒整数 给定一个 32 位有符号整数,将整数中的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 js解决办法:/*...原创 2018-08-13 11:00:18 · 178 阅读 · 0 评论 -
初级算法探索——字符串篇(一)
问题:反转字符串 编写一个函数,其作用是将输入的字符串反转过来。示例 1:输入: "hello"输出: "olleh"示例 2:输入: "A man, a plan, a canal: Panama"输出: "amanaP :lanac a ,nalp a ,nam A"js解决办法:/** * @param {string} s原创 2018-08-13 10:50:32 · 266 阅读 · 0 评论 -
基于六边形地图的A*寻路算法实现
和四边形地图的A*规则相同,主要是H值的计算,简化为等边三角形和平行四边形1. 起始点放入open列表 // A*算法计算最短路径 // G是从开始点到达当前方块的移动量 // H值是从当前方块到终点的移动量估算值 // 重复以下步骤来找到最短路径: // 将方块添加到open列表中,该列表有最小的和值F(F=G+H)。且将这个方块称为S吧。原创 2016-09-30 11:33:48 · 7231 阅读 · 0 评论 -
A星寻路算法介绍
你是否在做一款游戏的时候想创造一些怪兽或者游戏主角,让它们移动到特定的位置,避开墙壁和障碍物呢?如果是的话,请看这篇教程,我们会展示如何使用A星寻路算法来实现它!在网上已经有很多篇关于A星寻路算法的文章,但是大部分都是提供给已经了解基本原理的高级开发者的。本篇教程将从最基本的原理讲起。我们会一步步讲解A星寻路算法,幷配有很多图解和例子。不管你使用的是什么编程语言或者转载 2016-09-30 11:33:28 · 502 阅读 · 0 评论 -
编程解决买啤酒问题
编程解决买啤酒问题原创 2015-11-27 11:53:19 · 2148 阅读 · 0 评论 -
解析a++ 与 ++a 的区别
a++ 是常量++a 是变量原创 2015-10-31 13:37:59 · 1512 阅读 · 1 评论 -
排序算法之——桶排序
最快最简单的排序——桶排序 在我们生活的这个世界中到处都是被排序过的。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东西都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。 首先出场的我们的主人公小哼,上面这个可爱的娃就是啦。期末考试完了老师要将同转载 2014-02-26 10:25:17 · 788 阅读 · 0 评论 -
贪心算法思想及实现
【算法思想】贪心策略是指从问题的初始状态出发,通过若干次的贪心选择而得出最优值(或较优解)的一种解题方法。 其实,从"贪心策略"一词我们便可以看出,贪心策略总是做出在当前看来是最优的选择,也就是说贪心策略并不是从整体上加以考虑,它所做出的选择只是在某种意义上的局部最优解,而许多问题自身的特性决定了该题运用贪心策略可以得到最优解或较优解。【贪心策略的理论基础--矩阵胚】"矩阵胚原创 2014-01-20 12:31:24 · 3496 阅读 · 1 评论 -
插入排序思想及其实现
1. 基本思想: 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。2. 排序过程: 【示例】:[初始关键字] [49] 38 65 97 76 13 27 49 J=2(38) [38 49] 65 97 76 13 27 49 J=3(65) [38 49 65] 97 76 1原创 2014-01-20 12:27:27 · 2314 阅读 · 0 评论 -
各种排序算法的总结和比较
1 快速排序(QuickSort)快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。 (1) 如果不多于1个数据,直接返回。(2) 一般选择序列最左边的值作为支点数据。(3) 将序列分成2部分,一部分都大于支点数据,另外一部分都小于支点数据。(4) 对两边利用递归排序数列。 快速排序比大部分原创 2014-01-20 11:29:28 · 1073 阅读 · 1 评论 -
冒泡排序分析及实现
这是最原始,也是众所周知的最慢的算法了。基本思想: 按待排序序列的先后顺序,依次比较相邻的两个数,将小数放在前面,大数放在后面(若二者是升序,则不作任何操作,否则交换两个数即可)。即在第一趟:首先比较第1个数和第2个数,将小数放前面,大数放后面。然后比较第2个数和第3个数,将小数放前面,大数放后面,如此继续,直至比较最后两个数,将小数放前面,大数放后面。至此第一趟排转载 2014-01-20 11:01:21 · 1243 阅读 · 0 评论 -
思维定势之桶中的黑白球
本题出自《编程之美》,也是百度面试的题目。有一个桶,里面有白球和黑球各100个,规则如下:每次随机从桶中取出两个球如果是两个同色的球,就再放入一个黑球如果是两个异色的球,就再放入一个白球问:最后桶中只剩下一个黑球的概率是多少?解法:刚拿到这个问题,我的第一个想法就是用程序来计算各种情形出现的概率,然后再用递归求出最终的结果,不过可能因为程序存在一原创 2014-01-22 12:44:46 · 2093 阅读 · 0 评论 -
初级算法探索——数组篇(三)
问题:旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-...原创 2018-07-16 16:32:42 · 219 阅读 · 0 评论 -
初级算法探索——数组篇(四)
问题:存在重复 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: truejs解决办法:...原创 2018-07-16 16:59:43 · 187 阅读 · 0 评论 -
初级算法探索——数组篇(二)
问题:买卖股票的最佳时机 II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股...原创 2018-06-25 10:39:56 · 228 阅读 · 0 评论 -
初级算法探索——数组篇(十一)
问题:旋转图像给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2],...原创 2018-07-19 15:21:33 · 167 阅读 · 0 评论