
算法
ln2037
用心雕琢我的艺术品。
展开
-
快速乘法
和快速幂类似。思想是把乘法转换成加法。详见代码。#include <iostream>using namespace std;int multi(int a, int b) { int res = 0;//最终值 while(b) { if(b & 1) res += a;//若当前位为1,就相加 a <<= 1;//扩大二倍 b >>= 1;//右移一位 } return res;} int main() { int原创 2021-04-12 23:37:52 · 139 阅读 · 0 评论 -
LeetCode 208. 实现 Trie (前缀树) 【字典树】
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert(“apple”);trie.search(“apple”); // 返回 truetrie.search(“app”); // 返回 falsetrie.startsWith(“app”); // 返回 truetrie.insert(“app”);trie.search(“app”); /原创 2021-01-19 19:34:57 · 76 阅读 · 0 评论 -
一个数的因子个数求解公式
int getSum(int n) { int res = 1; int sq = sqrt(n); for(int i = 2; i <= sq; i++) { if(n % i == 0) { int tem = 0; while(n % i == 0) { n /= i; tem++; } res *= tem + 1; } ...原创 2020-02-07 22:41:10 · 647 阅读 · 0 评论 -
浅谈AC自动机
浅谈AC自动机ac自动机适用于多模式串匹配问题。通俗的说就是给你一个文本串,多个模式串,求模式串在文本串中出现的次数。需要的前置技能为trie树。算法核心思想与kmp相似。首先根据模式串构建trie树,代码如下:void insert(){ int len = strlen(a); int now = 0; for(int i = 0; i < len; i++) { ...原创 2019-09-03 11:03:56 · 194 阅读 · 0 评论