摘要: 前言 由于需要做一个快速匹配敏感关键词的服务,为了提供一个高效,准确,低能耗的关键词匹配服务,我进行了漫长的探索。这里把过程记录成系列博客,供大家参考。 在一开始,接收到快速敏感词匹配时,我就想到了 KMP 翻译过来叫“看毛片“的算法,因为大学的时候就学过它。听说到它的效率非常高。把原本字符串匹配效 阅读全文
posted @ 2019-08-05 14:36 Shendu.CC 阅读(6036) 评论(1) 推荐(4) 编辑
摘要: .net core 于 10月17日发布了 "ASP.NET Core 2.2.0 preview3" ,在这个版本中,我看到了一个很让我惊喜的新特性: HTTP Client Performance Improvements ,而且在Linux上性能提升了60% ! 之前就一直苦于 HttpCli 阅读全文
posted @ 2018-11-02 09:13 Shendu.CC 阅读(4810) 评论(16) 推荐(34) 编辑
摘要: 前言: 上一篇提到了特征提取,或者叫做降维。在文本分类中,特征提取算法的优劣对于文本分类的结果具有非常大的影响。 所以选择效果好的特征提取算法是文本分类前中很重要的步骤。于是这篇就对卡方检验做一个介绍。这是一个效果很好的特征提取方法。 之前对卡方检验做过介绍:卡方检验是通过对特征进行打分然后排序,选 阅读全文
posted @ 2018-04-09 17:55 Shendu.CC 阅读(20637) 评论(5) 推荐(6) 编辑
摘要: 前言:目前自己在做使用Lucene.net和PanGu分词实现全文检索的工作,不过自己是把别人做好的项目进行迁移。因为项目整体要迁移到ASP.NET Core 2.0版本,而Lucene使用的版本是3.6.0 ,PanGu分词也是对应Lucene3.6.0版本的。不过好在Lucene.net 已经有 阅读全文
posted @ 2018-02-08 14:26 Shendu.CC 阅读(6266) 评论(62) 推荐(19) 编辑
摘要: A. Theatre Square time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Theatre Square in the capit 阅读全文
posted @ 2024-01-11 20:24 Shendu.CC 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 题目 题解: 对于每个元素,它只有当左边的元素大于它的时候才能被删去。 维护一个数组,dp dp[i]表示第i个元素被删去需要多少步 维护一个单调递减的栈,用来查找每个元素的左边的第一个大于它的元素的位置 对于每个元素i,假设左边第一个大于的元素的位置是k,那么元素i需要等待区间[i-k]的元素都被 阅读全文
posted @ 2022-06-04 00:46 Shendu.CC 阅读(169) 评论(1) 推荐(1) 编辑
摘要: 第一题 class Solution { public: int countEven(int num) { int ans = 0; for(int i=1;i<=num;i++) { int res = 0; int x = i; while(x) { res+= (x%10); x/=10; } 阅读全文
posted @ 2022-03-04 20:58 Shendu.CC 阅读(36) 评论(1) 推荐(1) 编辑
摘要: 恢复内容开始 第一题 简单的二分查找 class Solution { public: int findFinalValue(vector<int>& nums, int original) { sort(nums.begin(), nums.end()); while(find(original, 阅读全文
posted @ 2022-02-11 00:01 Shendu.CC 阅读(47) 评论(1) 推荐(1) 编辑
摘要: 题目 题意: 两个拍排好序的数组,a, b 问你第k小的两个数组的元素乘积是多大。 题解: 两个数组的元素乘积最小是-105 * 105 最大是105 * 105 我们可以在这个范围内做二分,那么问题的关键就是能不能给你一个数,让你找到有多少个元素乘积小于这个数,复杂度最多n*log(n) 其实可以 阅读全文
posted @ 2022-01-14 20:02 Shendu.CC 阅读(224) 评论(1) 推荐(1) 编辑
摘要: 题目 题解,动态规划 因为m 最大只有5,所以我们可以枚举5个相邻的块,最多有多少种可能, 然后分析每个是否能与其他几个并排,然后就是简单的BP了 class Solution { public: int dp[50][5]; int bp[5]; int num[50]; long long in 阅读全文
posted @ 2021-09-30 14:27 Shendu.CC 阅读(64) 评论(1) 推荐(1) 编辑
摘要: 题目 在一个数组里面找到两个数异或的结果在某个范围之内。 这种题目,就要用二叉树, 代码写的又臭又长。。 struct Node { int value; int left; int right; int num; int pos; }tree[200005]; class Solution { p 阅读全文
posted @ 2021-06-19 22:37 Shendu.CC 阅读(88) 评论(0) 推荐(1) 编辑
摘要: 题目 毫无意义的题目。 class Solution { public: int countNumbersWithUniqueDigits(int n) { if(n==0) return 1; int ans=0; for(int i=1;i<=n;i++) { ans+=fun(i); } re 阅读全文
posted @ 2021-05-07 09:34 Shendu.CC 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 题目 题意: 对于树上的每个节点,找出与它的值互质的最近的祖先节点。 题解: 由于节点上的值在1-50之间,所以算互质很好算,事先算法。然后就是深度优先遍历树的时候维护路径上的节点的位置,利用1-50这个小范围,快速找到与当前节点值互质的值出现在哪些位置上 struct Node { int val 阅读全文
posted @ 2021-03-27 20:49 Shendu.CC 阅读(98) 评论(0) 推荐(0) 编辑
摘要: https://leetcode.com/problems/building-boxes/ 题意:在一个边长是n的立方体中放n个方块,方块可以叠加,但是被叠加的在下方的方块八面必须挨着墙或者别的方块。 问最底部最少可以放多少个方块。 这是一道找规律的题目,我们可以找出底部方块的个数m和最多可以放n个 阅读全文
posted @ 2021-02-20 19:55 Shendu.CC 阅读(117) 评论(0) 推荐(1) 编辑