- 博客(79)
- 收藏
- 关注
原创 Boyer-Moore 投票算法
在计算机科学中,寻找数组中的多数元素(即出现次数超过一半的元素)是一个经典问题。Boyer-Moore 投票算法(Boyer-Moore Voting Algorithm)是一种高效且优雅的解决方案,能够在时间复杂度为 O(n) 和空间复杂度为 O(1) 的情况下找到多数元素。Boyer-Moore 投票算法的核心思想是通过“投票”和“抵消”的过程来找到多数元素。假设我们有一个长度为 n 的数组,我们需要找到其中出现次数超过一半的元素。:遍历完成后,当前的候选人就是出现次数超过一半的元素。
2024-11-24 16:13:56
690
原创 css样式覆盖
在这段 HTML 代码中,bluered和green。每个类都定义了不同的文本颜色。在这种情况下,最终显示的颜色取决于 CSS 的层叠(Cascading)规则。
2024-11-23 20:31:46
291
原创 width设置100vh但出现横向滚动条的问题
这时,滚动条会占据一定的宽度,这会导致元素的实际宽度超过视口的可见宽度,从而出现横向滚动条。body是有默认样式的, 会有一定的默认边距, 把默认边距清除就是正常的了。:子元素的宽度会根据父元素的宽度进行计算,不会超过父元素的宽度。的元素宽度也不会超过视口的可见宽度,所以不会出现横向滚动条。:父元素的宽度是视口的宽度减去滚动条的宽度(如果有滚动条)。在width中减去滚动条的宽度就可以了, 一般是17px,时,元素的宽度会占据整个视口的宽度,包括滚动条的宽度。表示元素的宽度是其父元素宽度的 100%。
2024-11-23 20:31:08
1016
原创 假设我们有多个数组,每个数组存放的是图片的 URL,但存在很多重复项。我们需要得到一个对所有数组去重的结果数组。
假设我们有多个数组,每个数组存放的是图片的 URL,但存在很多重复项。我们需要得到一个对所有数组去重的结果数组。来优化查找操作,减少每次查找的时间复杂度。为了提高性能,我们可以使用。
2024-11-12 13:41:39
278
原创 JSON.stringfy做深拷贝的缺点(代码示例)
大家应该都用过JSON.stringfy配合JSON.parse来做深拷贝, 但是对于这种方式实现深拷贝的缺点可能不是十分清楚, 下面直接上代码。这是一段对一个对象做深拷贝的代码,对象中包括了各种的数据类型。对比输入输出, 我们发现。
2024-11-12 10:02:14
263
原创 深入剖析输入URL按下回车,浏览器做了什么
首先,是去寻找页面资源的位置。如果导航到, 假设HTML页面被定位到IP地址为的服务器。如果以前没有访问过这个网站,就需要进行DNS查询。浏览器向域名服务器发起DNS查询请求,最终得到一个IP地址。第一次请求后,这个IP地址可能会被缓存一段时间,这样后续对这个网址的请求中可以通过从缓存里面检索IP地址而不需要再通过域名服务器来进行查询。每个主机名在页面加载时通常只需要进行一次DNS查询。但是,对于,则需要多次DNS查询。如果字体、图像、脚本、广告都有不同的主机名,则需要对每一个主机名进行DNS查询。
2024-11-11 21:50:42
1151
原创 你知道RequestAnimation的执行时机是什么时候吗? 它属于宏任务还是微任务呢
Window:requestAnimationFrame() 方法 - Web API | MDN(简称rAF)是一种用于在浏览器的下一次重绘之前执行代码的 API。它的回调执行在浏览器的刷新周期内,以实现流畅的动画效果。那么在事件循环中,它不属于宏任务或微任务,而是一个单独的调度机制。它会在浏览器的渲染阶段执行,而不依赖于宏任务或微任务队列。浏览器会在每一帧的渲染前调用回调,通常以每秒 60 次左右的频率运行(这取决于显示器刷新率和系统性能)。rAF回调的执行优先级低于微任务(例如),但高于。
2024-11-11 16:30:04
853
1
原创 两种不同类型的防抖
通过闭包的方式, 对节流期间的调用进行保留, 并在节流时间结束后进行执行。相应的,保留节流期间调用的版本是怎么处理的呢。这两个版本的防抖函数区别主要是。
2024-11-09 14:20:02
211
原创 如果让你打乱一个数组你会怎么做
用sort当然是可以的,但是sort用的是快排,时间复杂度NlogN,那么有没有更好的办法呢。以此类推,确保了每个元素在每个位置出现的概率相等。可以发现洗牌算法的性能比sort的速度要快了很多。
2024-11-09 14:13:27
464
原创 代码中的设计模式-策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它允许你定义一系列算法或行为,并将它们封装在独立的策略类中。然后,你可以根据需要在运行时选择不同的策略。这种模式特别适合处理复杂的条件逻辑,比如多个 if-else if 语句。
2024-11-07 22:47:51
491
原创 forEach可以遍历不可枚举属性吗
静态方法返回一个数组,其包含给定对象中所有自有属性(包括不可枚举属性,但不包括使用 symbol 值作为名称的属性)。同时通过getOwnPropertyNames方法,我们就可以对其返回值调用forEach来进行遍历了。这里有一个对象,我们定义了一个不可枚举属性。我们可以通过两种方式来遍历不可枚举属性。运行这段代码我们发现发生了一个错误。
2024-11-07 22:15:42
239
原创 在JS中, 0 == [0] 吗
根据 JavaScript 的类型转换规则,数组会被转换为字符串。运算符会尝试将两个操作数转换为相同的类型,然后再进行比较。在不知道答案的情况下, 你觉得这段代码的输出是什么。我当时觉得是false, 结果我错了–^^–方法会将数组的内容转换为字符串,因此。运算符允许这种隐式转换。那为什么输出是true呢。因为==的隐式类型转换,
2024-11-07 22:12:04
418
原创 cookie能不能跨域
在学习整理的知识点的时候想到这个问题,但是看了网上的好几篇文章感觉说的不是很清晰而且不全面,于是我整理总结了这篇文章通常情况下,(如同源策略,Same-Origin Policy)会阻止 Cookie 跨域共享,以保护用户的隐私和防止跨站攻击。但通过一些特殊手段和配置,可以在特定条件下实现 Cookie 的跨域共享。
2024-11-07 22:09:46
985
原创 49.字母异位词分组
,这不符合题目的要求。题目要求的输出是将所有相同频率的字符串直接存储在同一个数组中(例如,是一个数组,用来存储所有具有相同字符频率统计的字符串。,则每个字符串都会被封装成一个独立的数组再被添加到。添加到数组中,而不是添加一个包含字符串。的原因在于我们希望直接将字符串。成为一个数组的数组(例如,
2024-06-05 14:01:02
232
原创 Vue中对数组直接赋值视图中无法获取响应式状态的问题
对每个图片渲染遮罩层,发现在鼠标进入离开事件中,页面上并不显示相应的显示隐藏,而且vue调试工具中对应的状态也未发生改变。创建pdfImageMaskHoverHandler方法进行输出调试发现控制台也会输出对应状态变更。排查原因:Vue 无法侦测到通过直接修改数组索引的方式来改变数组元素。解决办法:使用 Vue 提供的能够触发视图更新的数组方法,例如。时,Vue 并不会触发视图更新。
2024-06-05 13:59:11
373
1
原创 控制台打印[object Object]的原因
方法并没有做特殊处理,所以返回的是对象的通用字符串表示形式,即。对于普通 JavaScript 对象,在尝试转换对象为字符串时调用了对象的。
2024-04-26 17:53:15
1378
原创 在组件页面刷新为什么触发不了组件的生命周期销毁钩子
当进行页面刷新时,这些操作通常由浏览器自动处理(如清除内存中的变量等),因此不需要组件自身显式触发销毁钩子。:在某些特定的应用或框架中,可能有自己的方式来管理组件的生命期。如果你使用的是如Next.js这类服务端渲染或静态站点生成的框架,组件的生命周期可能会有所不同,或者有特定的API来处理类似场景。:如果你确信组件的销毁钩子应该在某个操作时被触发,但实际上没有发生,可能需要检查代码实现是否正确,或是否有其他代码或错误阻止了这一过程。或进行数据的清理等),你可能需要依赖于浏览器提供的一些事件,比如。
2024-04-26 17:48:44
664
原创 Vue的SetUp函数
在Vue 3中,引入了一个名为setup的新函数,它是使用组合式API时的一个主要功能。setup函数是组件的入口点,它在组件创建之前执行,允许你定义组件的响应式状态、计算属性、侦听器和其他函数。这标志着Vue对于更具函数风格编程的支持,旨在促进更大程度的代码复用和更清晰的逻辑分离。
2024-04-25 18:29:45
630
2
原创 在组件页面刷新为什么触发不了组件的生命周期销毁钩子
当进行页面刷新时,这些操作通常由浏览器自动处理(如清除内存中的变量等),因此不需要组件自身显式触发销毁钩子。:在某些特定的应用或框架中,可能有自己的方式来管理组件的生命期。如果你使用的是如Next.js这类服务端渲染或静态站点生成的框架,组件的生命周期可能会有所不同,或者有特定的API来处理类似场景。:如果你确信组件的销毁钩子应该在某个操作时被触发,但实际上没有发生,可能需要检查代码实现是否正确,或是否有其他代码或错误阻止了这一过程。或进行数据的清理等),你可能需要依赖于浏览器提供的一些事件,比如。
2024-04-24 14:54:45
781
1
原创 Vue路由NavigationDuplicated错误
这个错误信息显示的是错误,也就是说,在 Vue.js 使用 vue-router 时,应用试图导航到一个与当前已经是激活状态的路由相同的新路由上,从而触发了这个错误。在实际应用中,这通常发生在你试图通过vue-router的push或者replace方法重复跳转到相同的路由地址上。
2024-04-24 14:52:25
2002
原创 [SCSS]
SCSS(Sassy CSS)是一种 CSS 预处理语言,它扩展了 CSS 的功能并且提供了更多程序化的特性。SCSS 通过 Sass(Syntactically Awesome Style Sheets)来处理,Sass 是一个成熟、稳定、且强大的 CSS 扩展语言。SCSS 让你可以使用变量、嵌套规则、混入(mixins)、继承以及更多有助于编写可维护和重用的样式表的功能。
2024-04-23 17:34:09
207
python函数调用
2023-08-02
关于#c语言#的问题:这个问题的解决答案算法逻辑是什么
2023-04-10
简单问题的递归设计思路
2023-04-10
c++循环数据输入问题
2023-04-07
C语言的while循环条件 c++怎么写
2023-04-03
c++程序流程执行中语句逻辑错误
2023-04-06
C语言scanf输入问题
2023-03-11
C语言scanf("%4c")输入单个字符
2023-03-28
C语言初始化过变量后for循环的第一个分号前不做初始化没有输出
2023-03-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人