
算法
文章平均质量分 52
小楼夜听雨dayrain
只要静下心来,世界上没有学不会的知识
展开
-
Java实现 整型转字符串,位数不足时可以自动补0
代码public class StringUtil { /** * 整型转字符串并格式化 * @param minSize 最小大小 * @param separator 分隔符 * @param intNums 需要转化的整数 * @return 字符串 */ public static String formatInt(int minSize, String separator, int...intNums) {原创 2021-04-30 10:18:13 · 475 阅读 · 0 评论 -
前缀树是什么
前缀树(Trie树),又称字典树、单词查找树。常用于文本词频统计,可以最大限度的减少字符串比对的频率。大概的结构如下:每个结点都维护着一个next结点数组(普通链表维护的是next结点),大概形式如下: class TrieNode { public int val; public TrieNode[]next = new TrieNode[26]; }除了next数组外,可能还有其它的成员变量,例如上面的val,可根据具体场景定义。n原创 2021-11-15 09:06:36 · 591 阅读 · 0 评论 -
计算机中的加减法(原码、反码、补码)
假设我们的计算机比较低级,只能计算4个bit(位)的数。原码4个bit可以存下多大的数?只存正数如果我们只存正数,可以表示的范围是0000-1111,也就是0 至 15,一共可以存16个数。既存正数,也存负数如果我们继续要存正数,也需要存负数,就需要用一个bit来表示符号位。假设约定用最高位表示符号位,1表示负数,0表示正数。则范围变成了 1111-0111,也就是 -7至 7,一共可以存15个数。为啥只能存15个数了呢,因为此时 1000 与 0000都表示0,重复了。原创 2021-07-10 19:00:44 · 8272 阅读 · 0 评论 -
统计二进制数中1的个数(n & (n-1))
当我们将n和n-1做&运算时,会发生什么举例说明以 101100110001为例step1结论:少了个1,还剩5个step2:结论:少了个1,还剩4个step3:结论:少了个1,还剩3个step4:结论:少了个1,还剩2个step5:结论:少了个1,还剩1个step6:结论:1直接消失了。结论综上所述,某个数每次和比自己小1的数做一次&运算,其对应的二进制数会少一个1,直到最后变成0。代码利用这个原创 2021-07-03 17:17:45 · 312 阅读 · 0 评论 -
快速幂取模运算
由于数学基础比较薄弱,最近在做到一个算法题时,才了解到“快速幂”这一概念。题目地址:https://leetcode-cn.com/problems/jian-sheng-zi-ii-lcof/怎么样去理解“快速幂”?假设现在我接到一个需求:算出2的64次方。怎么做最快、最容易呢,总不可能真的算24次吧。通常我们会这么做2^64 = 2^32 * 2^322^32 = 2^16 * 2^162^16 = 2^8 * 2^82^8 = 2^4* 2^42^4 = 2^2..原创 2021-07-03 15:14:49 · 827 阅读 · 1 评论 -
记一次XOR(异或)的应用
题目的要求是:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?分析虽然可以借助键值对等数据结构(java中的map,python中的字典)来完成这题,但终究还是使用了额外的空间。class Solution(object): def si.原创 2021-02-01 14:27:03 · 237 阅读 · 0 评论