摘要: 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 阅读全文
posted @ 2019-06-21 15:46 earth_houge 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 归并排序将数组分为两个子数组分别排序,并将有序的子数组归并使得整个数组排序; 快速排序通过一个切分元素将数组分为两个子数组,左子数组小于等于切分元素,右子数组大于等于切分元素,将这两个子数组排序也就将整个数组排序了。 快速排序是原地排序,不需要辅助数组,但是递归调用需要辅助栈。 快速排序最好的情况下 阅读全文
posted @ 2019-05-31 17:37 earth_houge 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 归并排序的思想是将数组分成两部分,分别进行排序,然后归并起来。 阅读全文
posted @ 2019-05-31 17:36 earth_houge 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 对于大规模的数组,插入排序很慢,因为它只能交换相邻的元素,每次只能将逆序数量减少 1。希尔排序的出现就是为了解决插入排序的这种局限性,它通过交换不相邻的元素,每次可以将逆序数量减少大于 1。 希尔排序使用插入排序对间隔 h 的序列进行排序。通过不断减小 h,最后令 h=1,就可以使得整个数组是有序的 阅读全文
posted @ 2019-05-31 17:35 earth_houge 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 问题描述:前段时间在项目中需要计算语义相似度,项目是java工程,但是计算语义相似度是基于python写的,因为这其中又涉及到tensorflow,numpy等,所有又不能直接转成java的,所以如果要实时计算的话必须在java中调用python的程序,在网上搜了搜,找到了解决方案,这里我写了例子大 阅读全文
posted @ 2018-12-26 19:07 earth_houge 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 问题背景:最近在项目中需要算两个语句的语义相似度,程序使用python写的,然后离线存入到mongodb中,原本是把算出来的语义相似度得分直接赋给某个字段,然后整体存入到mongodb中,结果就报了如下的错误: bson.errors.InvalidDocument: Cannot encode o 阅读全文
posted @ 2018-12-26 18:38 earth_houge 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定两个有序数组,把两个给定的数组合并成一个新的数组,新的数组仍然保持有序。 代码如下: 执行结果:[1,2,3,4,5,6,7,8,9,10,11,12,15,17,21] 阅读全文
posted @ 2018-12-05 15:13 earth_houge 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 题目描述:给定一个字符串,将给定字符串中的元音字符反转位置。 题目分析:使用双指针指向待反转的两个元音字符,一个指针从头向尾遍历,一个指针从尾到头遍历。 代码如下: 执行结果: jinagreakgjanegraikg 阅读全文
posted @ 2018-12-05 14:54 earth_houge 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 题目描述:判断一个给定的数是否为两个数的平方和。 题目分析:使用双指针,一个数从1开始,一个数从给定数的算术平方根开始。较小的数每次累加1,较大的数每次减1。 如果两个数的平方和 sum == target,那么得到要求的结果; 如果 sum > target,移动较大的元素,使 sum 变小一些; 阅读全文
posted @ 2018-12-05 14:44 earth_houge 阅读(360) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在有序数组中找出两个数,使它们的和为指定的值,然后返回这两个数在原数组中的位置。 题目分析:使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。 如果两个指针指向元素的和 sum == target,那么得到要求的 阅读全文
posted @ 2018-12-05 14:34 earth_houge 阅读(224) 评论(0) 推荐(0) 编辑