![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
天道988
既然选择了IT,就做好了终身学习的准备!
展开
-
把相邻的数字和英文字符用空格分隔开
最近在优化 es 搜索的时候,遇到个需求,需要把连着的数字和英文字母分隔开。从而让 es 把相邻的数字和英文字母分为 2 个词,因为我们用的是 ik_smart 而不是 ik_max_word ,ik_smart 会把相邻的数字和英文字母分为一个词。所以这部分工作就需要由应用端来完成。 需求已经交代清楚了,例如把: 123hello你好 最终处理为: 123 hello 你好 上代码: /** * @Author:shifengqiang * @Date:2021/5/28 9:24 上午 */原创 2021-05-28 09:28:28 · 524 阅读 · 0 评论 -
字符串中单词逆序
比如给定一个字符串" I come from china”输出为"china from come i "用程序实现。 方法一:从右到左搜索单词搜索到一个单词(一个空格也看做一个单词)就直接打印。在这里就遇到一个问题,那么计算机是怎么识别一个单词的呢?单词是由空格来界定的,从右到左搜索遇到的第一个非空格就是一个单词的结尾,再继续向左搜遇到第一个空格,该空格再向右走一步就是一个单词的首字母。这样就把原创 2012-10-21 15:41:57 · 1442 阅读 · 0 评论 -
100盏灯经过一系列操作后最后还有多少盏灯亮着(百度的一道笔试题)
今年百度的一道笔试题:有100盏灯(它们的位置编号为1, 2 .. 99,100),刚开始全都是灭着的。第一次把所有的灯都打开,第二次把偶数位置上的灯灭了,第三次把位置是3的倍数的灯原来灭的打开,原来打开着的,灭了。第N次把位置是N的倍数的灯原来灭的打开,原来打开着的,灭了。问第100次后还有多少盏灯灭着的?下面我用编程实现这道题在写代码之前我们先分析一下这道题。100盏灯一会儿灭,一会儿亮到底哟原创 2012-10-26 21:40:52 · 3050 阅读 · 0 评论 -
用递归法求解一个数组中的最大值和最小值的问题
用递归法求一个给定的数组中的最大值和最小值。 分析,分治法,类似二分查找,可以先求解出左半部分的最大值和最小值,再求解出又半部分的最大值和最小值然后合并求解,就可以求解出整个数组中的最大值和最小值。 那么递归的出口条件是什么呢?当划分以后只有一个元素的情况下,这个元素既是这个子数组的最大值也是子数组中的最小值,这时候就是递归的出口。下面就让代码开口说话吧。 #include "iostrea原创 2012-10-29 23:06:01 · 5229 阅读 · 0 评论 -
找出重复的整数
在一个给定的数型组中,找出重复的整数: 比如int array[5] = {1,1,3,3,4,5,6}重复的整数是1 ,3。 我的想法,先对数组进行排序,使数组处于有序状态,这样一来就容易判断重复的数字。我的判断方法是:用两个指针分别指向两个数字,比如用current指针指向第一个数字1next指针指向第二个数字1,如果current指向的数字等于next指向的数字说明有重复的数字,然后让n原创 2012-10-27 23:11:15 · 801 阅读 · 0 评论 -
最长公共子序列LCS问题
好久没有写博客了,刚才在网上看了清华大学的数据结构公开课,链接:https://www.xuetangx.com 可以注册个账号去听数据结构课程,老师讲的特好。 我的代码是按照老师讲的递归算法给了个java版本的实现,通过java版本改c++或其他语言的版本也挺容易的。 递归是一种简单解法,刚开始理解会有困难,一个问题如果能简化为一个比原来问题规模小的问题和一个可以解决的问题,最后可以合并这两原创 2013-10-28 22:06:14 · 733 阅读 · 0 评论 -
算法导论学习之归并排序
惭愧,又好久没看《算法导论》了。上次看《算法导论》的归并排序算法,后来自己写了段代码,实现了算法,不过有问题,一直也没找出问题来。今天趁着礼拜天有时间,调试一下代码。时间不早了,明天还得上班,有时间我会给代码加段注释,以及我在写这段代码的时候,遇到的问题与大家分享,防止大家也犯类似的错误。 // mergeSort.cpp : 定义控制台应用程序的入口点。 // #include "std原创 2014-03-30 23:25:45 · 746 阅读 · 0 评论 -
算法导论学习之插入排序
《算法导论》买了好久了,基本上没怎么看,最近思想上有了准备,觉得学习才是王道。准备重新拾起来学习,下面我就《算法导论》中的排序算法中的 插入排序做了个c++的简单实现,附加解释一下自己对下面的这段代码的理解。 #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int arra原创 2014-03-02 23:05:23 · 1349 阅读 · 1 评论 -
二分查找法分析
二分查找针对的是一个有序的数组其思想还是比较简单的,我们假设这个有序数组的顺序是从小到大排序的,我们拿一个目标值与数组最中间的一个值进行比较,两个数进行比较有三种情况: 目标值等于中值 目标值小于中值 目标值大于中值 下面分别对这三种情况进行讨论: 目标值等于中值时直接返回中值索引 目标值小于中值时待查找的元素如果在数组中的话,那么它肯定是在中值的左侧 目标值大于中值时待查找的元素如果在数组中的话,原创 2016-06-06 10:03:13 · 610 阅读 · 0 评论