• 2024-11-20xor-hash 学习笔记
    一、xor-hash功能这里可以把sum-hash和xor-hash放在一起对比:sum-hash可以快速判断两个集合对应元素出现次数是否相等。xor-hash可以快速判断两个集合对应元素出现次数奇偶性是否相等。操作流程:给每个元素赋随机权值\(key\),一个集合的hash值为\(\bigoplus_{x\in
  • 2024-11-20一起来了解hashmap核心机制
    HashMap是Java中常用的集合类,用于存储键值对(key-value)。理解其核心机制需要深入源码,了解其内部结构、哈希算法、冲突处理、扩容机制等。以下是对Java8及以后版本中HashMap核心机制的详细讲解。1.HashMap的基本结构在Java8中,HashMap主要由以下几个核心部分组成:数
  • 2024-11-19【优选算法篇】算法江湖中的碎玉拾光——C++模拟题全解,踏步逐章细细品味
    文章目录C++模拟题详解:基础题解与细致分析前言第一章:基础练习1.1替换所有的问号(easy)解法(模拟)C++代码实现易错点提示时间复杂度和空间复杂度1.2提莫攻击(easy)解法(模拟+分情况讨论)C++代码实现易错点提示时间复杂度和空间复杂度1.3N字形变换(medium)解法(模拟+找
  • 2024-11-19[Java] String的hashCode方法
    简述java/lang/String#hashCode是用途极广的方法,其源码实现也存在一定变迁。其位于JRE的rt.jar包内OpenJDKOpenJDK8-b120版~9-b00版:=OracleJDK1.8.0-261jdk/jdk/src/share/classes/java/lang/String.javahttps://github.com/openjdk/jdk/blob/jdk8-b120/
  • 2024-11-19模拟计算hash前面N个0需要的时间
    写了一个python代码用来模拟计算当hash前面有N个0时需要多长时间。代码如下:importhashlibimporttimefromdatetimeimporttimedeltafromplyerimportnotificationdeffind_hash_with_prefix_zeros(prefix_length=6):#初始字符串base_text="Hello,World
  • 2024-11-18关于一些哈希
    随缘更新,但考虑到马上要退役,毕业前应该没机会力。求字符串的最长公共前缀标准空间复杂度:\((\sum_i|s_i|)\),但根据具体场景通常可以缩小至\(O(n)\)。时间复杂度:\(O(\sum_i|s_i|)\)预处理,\(O(\logmin(|s_i|,|s_j|))\)求两字符串的最长公共前缀对于每个字符串,预处理其前缀has
  • 2024-11-17把以前想的唐氏东西记录一下。
    题目当时什么hash状物都不会,但考虑一下哈希的本质,实际上是一种映射关系,在这一道题中,我们可以省掉哈希的进制,因为匹配的结果与位置无关,接下来就可以乱搞了。是真的乱搞(意思是随便想一个与之关联的函数),但是这个东西现在发现和sumhash很相似,实际上sumhash只是赋了一个随机
  • 2024-11-17Java集合框架高频面试问题精粹(下篇)
    书接上回,上一篇文章介绍了Java集合常见面试题全解(上),反响不错,也有很多同学发表了自己的观点,这次又来了,这次是Java集合常见面试题总结(下)了,主要讲解了Map集合原理,它的使用频率也是很高。那么它的存储结构和实现原理是怎么样的呢一、Collections工具类(不重要)Collections 工
  • 2024-11-15一种基于 pb_ds 的更好写且常数更小的离散化方式
    一般大家实现离散化都是sort+lowbit但是这里也许有一种时间复杂度更优一点且更好写的实现,适合卡常时使用我们需要使用pb_ds的hash表,不会的可以看我的这篇文章与正常离散化不同的是,我们使用gp_hash_table来代替离散化,同时还可以省去去重的步骤由于哈希表单次操作的
  • 2024-11-15Hash
    Hash一种快速判定的方法,具体是将一个复杂的结构映射成一个整数,用极低的错误概率换取极快的比较效率。进制Hash对于序列的Hash,关心元素之间的位置关系。不要把任意字符对应到数字0,比如假如把a对应到数字0,那么将不能只从Hash结果上区分ab和b.注意有时候卡自然溢出和int范围
  • 2024-11-15java 反序列化 cc7 复现
    复现环境:common-collections版本<=3.2.1,java版本随意.cc7就是cc6换了一个出口,整体的逻辑没有太大的变化.在Lazymap之前的还那样,我们从如何触发Lazymap的get方法开始看起.AbstractMap看他的equals方法publicbooleanequals(Objecto){if(o==this)ret
  • 2024-11-15cmu15545笔记-Join算法(Join Algorithms)
    目录OverviewNestedLoopJoinNaïveBlockIndexSort-MergeJoinHashJoinSimpleHashJoinPartitionHashJoin总结Overview输出形式:早物化与晚物化(OLAP一般都是晚物化)代价分析:一般用IO次数计算(最终结果可能落盘,也可能不落盘,所以我们只计算输出结果之前的IO次数)。Join左边称为
  • 2024-11-15React Router 的实现原理
     本文分两部分,一说前端路由的基本原理,二说ReactRouter的实现原理前端路由的基本原理​不说屁话,从时间线上讲,Web应用原本是后端渲染,后来随着技术的发展,有了单页面应用,慢慢从后端渲染发展成前端渲染在博客前端路由hash、history的实现 一问中我已经介绍过这两种模式h
  • 2024-11-14COCI19-20#6 Trener题解
    COCI19-20#6Trenerlink一道水题(我真是太弱了啊啊啊啊。众所周知,看到这个题立刻知道他是要选名字长度为$1$到$N$的,而我们知道他每一个名字,所以可以直接用字符哈希去做,因为他每一个名字的字符数是上一层名字的字符数加一,所以对于哈希每个字符串只需要跑三次,分别是自己的这
  • 2024-11-14vue项目部署后刷新页面404的原因和解决方案
     一、这是为什么,我们先来了解下vue路由两种模式的区别。newRouter({mode:'hash',//historyroutes:[],...})1.hash模式(默认)的访问URL中有#字符,history模式的URL没有带#,外观上history模式比hash模式好看些;2.hash模式通过监听浏览器的onhashchange()
  • 2024-11-13海量数据去重的哈希与布尔过滤器
    目录散列表hash与平衡二叉树比较:散列表组成:hash函数作用:怎么选择hash:选择标准:常用hash:hash的操作:hash冲突产生原因如何描述冲突程度:解决冲突:在合理范围内:used<size:不在合理范围内(used>sizeorused<0.1size()):stl中散列表的实现哪些stl使用了
  • 2024-11-11发现一肉鸡接口,快来围攻啦~
    系统登录页面,为防止明文传输用户密码,开发者做了安全加固。服务端暴露一个loginEncryptKey的API,用来根据登录名username获取加密秘钥encryptKey。前端页面获取到encryptKey后,在请求login登录接口时,会对用户密码进行加密传输。这个loginEncryptKey接口的服务端怎么
  • 2024-11-11深拷贝函数的实现
    functiondeepClone(obj,hash=newWeakMap()){//处理null、undefined、非对象的情况(直接返回值)if(obj===null||typeofobj!=='object')returnobj;//防止循环引用if(hash.has(obj))returnhash.get(obj);//支持Date、RegExp类型
  • 2024-11-09cmu15545-哈希表(Hash Table)
    基本概念哈希和树一样,是数据库系统中用于访问数据的方法。空间复杂度:$O(n)$时间复杂度:$O(1)~O(n)$权衡:更大的哈希空间(碰撞减少),还是更少的哈希空间(碰撞处理)?哈希函数CRC-64(1975)MurmurHash(2008)GoogleCityHash(2011)FacebookXXHash(2012)【最常用】Goo
  • 2024-11-07树哈希 Hints
    简化代码注意hash的值具有可加减的特性,可以极大程度的简化代码。同时可以维护可能作为答案的“匹配池”中的hash值,这样就不用进行(超级dirtywork的)树加减了。树哈希是一种集合哈希(?),所以支持加减!!!hash函数我也不知道为什么大家都在用这个hash函数ullshift(ullx
  • 2024-11-07为什么前端打包出来的静态文件名字是一串 Hash 值 ?
    前端打包出来的静态文件名带有一串Hash值,主要是为了实现以下几个目的:缓存有效性:当文件内容发生变化时,Hash值也随之改变,这意味着浏览器能够识别文件的更新。如果文件内容没有变化,Hash值保持不变,浏览器可以从缓存中加载文件,节省网络带宽和提高加载速度。避免缓存问题:在
  • 2024-11-06LeetCode202 快乐数
    快乐数题目链接:LeetCode202描述编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐
  • 2024-11-06view-login-重新定向
    当然可以!让我们详细解释一下这段代码,并纠正其中的拼写错误和语法问题。修正后的代码<template><div><h1>重定向中...</h1></div></template><script>exportdefault{name:'AuthRedirect',created(){consthash=window.location.s
  • 2024-11-06CMU_15445_P2_Extendible_Hash_Table
    到Project2,我们依然在处理数据库存储相关的部分,从Project1中我们应该Get到两个概念:数据库底层数据操作的基本单元是Page.buffer_pool_manager是管理以及组织数据单元Page的工具,在Project2的第一部分,我们还新增了页面守护(PageGuard)的机制更加优雅的获取以及释放
  • 2024-11-05JUC容器
    并发容器类这些类专为支持并发环境中的高效数据访问和操作而设计。与传统的容器类相比,并发容器类具有更好的线程安全性和性能。在使用多线程环境时,通常推荐使用这些并发容器以避免手动加锁和同步操作。ConcurrentHashMap特点:一个线程安全的哈希表,支持高效的并发访问。通过分