
刷题
文章平均质量分 72
树朴
永远不要说自己的代码是对的
展开
-
进大厂必会的数据结构——前缀树/字典树
本文主要讲解经典的数据结构前缀树/字典树的原理和c++实现,常用于搜索引擎的文本词频统计、自动补全和拼写检查,是计算机从业者毕备的基础知识。原创 2021-04-14 15:59:33 · 330 阅读 · 0 评论 -
用分治法加速反转二进制位
本文主要介绍颠倒二进制位,以及用分治法优化原有的算法,涉及分治、掩码、逻辑运算等知识点,是计算机经典的算法题之一,如leetcode190题原创 2021-03-29 11:31:08 · 288 阅读 · 0 评论 -
位运算优化汉明重量求解过程
本文主要介绍汉明重量的c++解法,是经典的算法问题,包括基本解法和位运算优化两个解法,其中后者的时间复杂度为log(n)级别。相关例题如leetcode191.位1的个数等。原创 2021-03-22 10:17:06 · 492 阅读 · 0 评论 -
一鸡两吃——分割数组为连续子序列
本文主要讨论了经典算法题《分割数组为连续子序列》的解法,题目描述为:给你一个按升序排序的整数数组num(可能包含重复数字),请你将它们分割成一个或多个子序列,其中每个子序列都由连续整数组成且长度至少为 3原创 2020-12-04 21:25:42 · 363 阅读 · 1 评论 -
经典中的经典之——筛选法求素数(埃氏筛 | 线性筛)
本文主要介绍经典算法题求一段区间内的素数个数,三种方法——蛮力法、埃氏筛和线性筛,各有特点和优劣,值得反复打磨推敲原创 2020-12-03 16:34:34 · 1478 阅读 · 0 评论 -
异或和与操作的新理解——不用加减乘除做加法
剑指offer JZ47 不用加减乘除做加法题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解体思路:整数在计算机中用二进制补码表示,加法的本质是每一个二进制数位做加法,并且对每一个二进制数位向上一位做进位。也就是说,对于两个二进制数相加,等于“忽略进位的加法结果”加上“进位结果”。而“异或”操作等效于忽略进位的加法;“与”操作等效于求进位,配合左移操作形成进位。举个例子:假设我们要求10+710+7 = 1010+01111010^0111 = 11原创 2020-09-20 16:16:29 · 773 阅读 · 0 评论