自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 三天精通一算法之快速排序

/ 输出: [1, 1, 2, 3, 6, 8, 10]// 输出: [1, 1, 2, 3, 6, 8, 10][arr[i], arr[right]] = [arr[right], arr[i]];

2024-12-10 17:37:27 568 1

原创 一篇文章带你速通js哈希表(set,map)常用方法(求两个和哈希表的交集)

`map.entries()`: 返回一个新的 Iterator 对象,该对象包含了按照插入顺序所有的 [key, value] 数组。JavaScript 中的哈希表通常通过 `Object` 或者更常用的 `Map` 对象来实现。- `map.values()`: 返回一个新的 Iterator 对象,该对象包含了按照插入顺序所有的值。- `map.keys()`: 返回一个新的 Iterator 对象,该对象包含了按照插入顺序所有的键。- `new Map()`: 创建一个新的 Map 实例。

2024-12-09 10:55:17 667

原创 动态规划经典问题之爬楼梯问题

它意味着爬到第 x 级台阶的方案数是爬到第 x−1 级台阶的方案数和爬到第 x−2 级台阶的方案数的和。很好理解,因为每次只能爬 1 级或 2 级,所以 f(x) 只能从 f(x−1) 和 f(x−2) 转移过来,而这里要统计方案总数,我们就需要对这两项的贡献求和。我们不难通过转移方程和边界条件给出一个时间复杂度和空间复杂度都是 O(n) 的实现,但是由于这里的 f(x) 只和 f(x−1) 与 f(x−2) 有关,所以我们可以用「滚动数组思想」把空间复杂度优化成 O(1)。

2024-12-04 23:31:24 223

原创 记录今天刷题的犯错

2.快慢指针搞错快指针的查找范围,结果数组访问越界,一直把undefined赋值给新数组,结果新数组一直多了一个undefined,但是我用了nums.pop()居然没用,好奇怪,是pop删不掉undefined吗,他nnd我快指针while(k1<=nums.length)低级错误。ok新问题,js创造新数组不能 const nums1[]或者let nums1[]只能let nums1=[]1.二分查找忘记把mid取整,在js里是number,包含了整型与浮点。,搞了半天双指针还没有上述方法好。

2024-12-02 17:24:11 322

原创 一篇文章带你读懂node中pnpm与npm区别

(Node Package Manager)是 Node.js 的包管理器,它允许开发者下载、安装、升级和配置项目所需的第三方库和框架。是 Node.js 生态系统的核心部分,它提供了一个集中的仓库,包含了数十万个开源包,这些包涵盖了从网页开发到数据库操作等各个方面。允许开发者在项目中定义脚本,这些脚本可以在项目的生命周期中的不同阶段执行,如安装、构建、测试等。全局安装的包可以在系统的任何地方使用,而本地安装的包则仅供当前项目使用。,但提供了一些关键的优势,如更快的安装速度和更小的磁盘占用空间。

2024-12-01 10:59:48 390

原创 js的正则表达式你真的了解吗

在JavaScript中,正则表达式(Regular Expression,通常简写为regex或regexp)是一种强大的文本处理工具,它使用一种特殊的语法来描述字符串的模式,可以用来匹配、查找、替换文本中的特定字符序列。

2024-11-25 17:03:08 936 1

原创 一篇文章带你读懂js实现链表

第一次写的代码不完全通过,因为没有比较到第一个头节点的val,而且if判断完node后又进行了后移。上述一个简单的node节点,我们来完整的实现一个链表,包括他的全部功能。来声明属性,因为它们是类的一部分,并且将在创建类的实例时自动存在。:如果链表为空,那么新的节点就会成为链表的第一个节点。:如果要删除的节点是链表的第一个节点,那么将其。:这是一个循环,用于找到链表的最后一个节点。:检查要删除的节点是否是链表的第一个节点。:这是一个循环,用于找到要删除的节点。:这是类的构造函数,不接受任何参数。

2024-11-22 21:33:18 865

原创 两周学习js总结

首先回忆一下js es6版本新特性1.引入模板字符串2.引入了模块化import3.引入了let4.引入箭头函数下面是全部内容:ES6引入了新的变量声明关键字let和const,它们替代了之前的var关键字。let声明的变量具有块级作用域,不会提升(hoisting),并且不允许重复声明。const声明的变量是常量,值在初始化后不能更改。:ES6引入了箭头函数,这是一种简洁的函数语法。箭头函数不需要function关键字,并且没有自己的this值,它会从定义它的环境中获取this值。

2024-11-17 21:10:51 463

原创 聊聊js事件

定义:JavaScript事件是指在网页中发生的交互性操作或特定的系统事件,例如用户的点击、鼠标移动、按键按下等。作用:通过捕捉和处理这些事件,开发者可以在事件发生时执行相应的JavaScript代码,从而实现网页与用户的实时交互。

2024-11-17 19:50:12 523

原创 聊聊ai对电商行业的赋能-用户端

具体来说,AI可以根据用户的浏览历史、购买记录、搜索关键词等数据,构建出精细的用户画像,并据此为用户推荐最符合其需求的商品或服务。这些虚拟客服不仅具备高度的自主性和智能性,还能根据用户的情绪和需求进行灵活应对,提供更加人性化、专业化的服务。AI技术可以通过对这些数据的深入挖掘和分析,提取出用户的真实需求和痛点,为电商平台提供有针对性的改进建议。通过自然语言处理(NLP)技术,AI可以解析用户的搜索语句,识别其中的关键词和语义关系,从而为用户提供更加个性化的搜索体验。四、用户反馈分析的精准化。

2024-11-16 14:38:30 436

原创 三天精通一种算法之螺旋矩阵(设计思路),长度最小子数组(滑动窗口)

很多人一开始就想到了暴力 两个for拍屁股走人,恭喜你力扣更新后暴力无法通过了,我们来看看这个新颖的双指针算法---滑动窗口,注意滑动窗口只解决了(连续子数组)的最短和。2.判断最后需不需要填充的if条件没有加等号,事实上填充到最后一个方块这四个指标都会相等,所以还是要添加循环。第二次错在第一个while里面嵌套的是sum+=num[end],贼贼贼。1.填充方式的理解错误导致在for循环的条件没有添加等号。没理解到第一个while(end),还是要多多加强。其实解题过程出现很多小细节的错误。

2024-11-14 21:44:33 382

原创 十天速通js第五天之--json常用方法

这里涉及到this的详细内容,我们后面详细聊聊,这题在内置的js数组方法内增添了一个last方法有意思。第一种暴力思路第一次for遍历数组,第二次for循环遍历要加入的数组 把他们加入一个数组对象中。力扣官方的题解很有意思。

2024-11-13 18:42:31 138

原创 三天精通一种算法之数组-有序平方和(双指针)

注意条件while(i

2024-11-12 19:01:58 199

原创 十天入门javaScript第四天(Promises对象异步 )(睡眠函数) (json)

Promise 是一个 JavaScript 的内置对象,它代表了一个异步操作的最终完成(或失败)及其结果值。Promise 对象是异步编程的一种解决方案,它可以使异步操作以更简洁、更易于管理的方式进行。Promise 对象允许您以异步方式处理操作,并可以在操作完成时执行特定的操作。方法来处理 Promise 的结果或错误。// result 是异步操作的结果。// error 是异步操作的错误。// 这里处理操作成功的情况。// 这里处理操作失败的情况。// 这里执行异步操作。:意味着操作成功完成。

2024-11-12 16:48:39 324

原创 三天精通一种算法之移除数组元素(暴力)(快慢指针)

/ 如果当前元素不等于 val,则将其复制到 nums[k] 的位置,并增加 k。// 将 nums 的长度设置为 k,这样数组中多余的部分就被删除了。// 初始化 k,用于记录非 val 元素的索引。// 遍历 nums 数组。// 返回修改后的数组。代码随想录另一种算法。

2024-11-11 20:44:44 631

原创 leetcode十天速刷入门js第三天 复合函数 一次函数 记忆函数(哈希表方案)

此外,在遍历Map时,除了使用迭代器遍历keySet或values来获取键或值外,还可以使用foreach遍历entrySet来获取键值对,这样可以更方便地同时访问键和值。方法返回Map中所有键值对所组成的Set集合,集合元素是Map.Entry对象(Map的内部类),每个Entry对象代表一个键值对。方法可以删除Map中指定键的键值对,并返回被删除键对应的值。方法用于判断Map是否为空,如果Map中没有任何键值对,则返回true,否则返回false。如果Map中已经存在相同的键,则新的值会覆盖旧的值。

2024-11-11 17:05:25 613

原创 leetcode十天速通js第二天

(2)回调函数 map方法 //重点。--学到这里作者大大不禁感慨,js语法怎么这么奇怪555。// 定义一个映射函数,将数组中的每个元素乘以2。

2024-11-10 20:40:19 277

原创 三天精通一种算法之二分查找

此处的永远不相交是什么意思呢,举个例子right 6 left 7 mid 6 目标值如果在7那么mid,right和left永远不会变,陷入循环。

2024-11-08 16:10:10 187

原创 leetcode带你十天快速入门js第一天

所以检索不到函数n,其实就是没有形成闭包调用栈记录n的值。这题要求返回对象不是数字,也涉及到闭包概念。但在评论区看见一个有意思的问题。测试评论得到这个结果。

2024-11-07 22:29:10 143 2

原创 阮一峰的javaScript

在JavaScript中,闭包是一种函数,它具有访问其自身词法环境(lexical environment)的能力,即使该函数在其词法环境之外被执行。: 最后,外部函数需要返回至少一个内部函数,这样外部代码才能调用它,并且由于闭包的特性,即使外部函数执行结束,其局部变量也不会被垃圾回收,因为内部函数仍然保持着对它们的引用。就是指针会改变,指针指向的值不能变,复杂常量const的指针指向另一个指针,所以复杂const常量对象不能变,对象的值能变。// 调用外部函数,获取闭包(即内部函数)的引用。

2024-11-07 17:20:14 1292

原创 git学习十分钟速通git

​​​​​​​。

2024-11-06 16:27:16 163

原创 js中的小小细节

varvarletvarundefinedletletvarletvarwindowlet综上所述,let和var的主要区别在于它们的作用域规则、变量提升行为、重复声明以及是否成为全局对象属性。了解这些差异有助于编写更清晰、更易维护的 JavaScript 代码,并减少因作用域和声明方式不当而引发的错误简单const常量与复杂const常量:在JavaScript中,const用于声明常量,即一旦声明,其值就不可更改的变量。但是,“不可更改”这一说法需要根据const所声明的数据类型来具体理解。

2024-11-06 11:11:29 837

原创 js第二天

然而,在JavaScript中,数据类型是动态的,也就是说,同一个变量可以在其生命周期中存储不同类型的数据。例如16 + "Volvo"在js中输出的时候,js尝试将数字和字符串使用加号(+)运算符相加时,JavaScript 会将数字转换成字符串,然后进行字符串连接操作,而不是进行算术加法。在强类型语言中,如C++或Java,变量在声明时必须明确其数据类型,并且在其生命周期中,这个类型是不可改变的。然而,在JavaScript中,由于类型的动态性,很多类型错误只能在运行时被捕获。关键字,无需指定类型。

2024-11-05 19:59:09 561

原创 洛谷第四天

改进过程两出问题,其一是输出格式一定要完全按照洛谷格式输出有\n也要,其二是除了不能在if里啊a<c<b也不能a==b==c,还有在判断其是否为锐角三角形时,最小两边平方之和会大于第三边而不是等于。第一次提交的代码居然忘记了=不是恒等==,提交后发现没有全部ac,重温了一遍选择排序和一次习性选出最小最大值的区别,选择排序是嵌套循环 是比较当前每一次数字与后面每一个数字,而一次性比较只比较一次当前数字与后面数字。// 假设a是最小花费。

2024-11-04 22:31:47 905

原创 js学习第一天

js 数据类型 string number boolean undefined null object(array,function,{} )hobbies:["basketball","football"],//数组字面量,不是数组,是对象。- 代理模式通过是实现相同的接口,对象互换,若没有接口或者没有相同的方法则不能实现代理。age:18,// number 字面量整形和浮点型。sendFlower(target){//函数字面量。name:"dai",//string 字面量。

2024-11-03 10:57:15 377

原创 洛谷3.

/分,这里的加一有点细节,应为他在浮点数转换为整形的时候省略了小数点后面的数字。//分,这里的加一有点细节,应为他在浮点数转换为整形的时候省略了小数点后面的数字。(1)计算提前的分钟的时候小数位数不一定有,所以t不一定+1,所以应该用取整函数ceil。(2)计算需要的小时和分钟的计算方式反了应该是d=c/60,t=c%60。//此处的if为了去分辨输出格式是否为00:00。//此处的if为了去分辨输出格式是否为00:00。c = s / v;注意六位有效小数而不是六位小数。

2024-10-31 21:22:29 930

原创 luogu2

数据部分不通过,检查答案发现是float精度不够的问题。

2024-10-29 21:52:17 972

原创 洛谷刷题第一天

注意:n++因该放在sn算式之前否则输出结果会比正确答案的n多1。

2024-09-09 19:47:01 511

原创 框架学习第一天

springioc作用,组件的本质就是可以复用的java对象。1.框架的概念:本质为java代码规范了一系类规范。springframework和spring学习。1.springframework学习。如何更好的理解框架呢,如下图。springioc概念。spring框架概念。

2024-08-09 20:58:47 428

原创 maven学习第二天

实际操作:在idea里创建一个maven工程,工程内创建一个父类模块,此模块要删除scr文件然后在此模块的pom文件配置gav属性即可规范子类模块的依赖版本等,创建完子工程时我门发现子工程内的破pom问件自动配置了父类的继承信息,如图。聚合的父类pom文件表达式,module中加入要聚合的子工程,一般在父工程内创建子工程就自带聚合属性。如果在子类中重写gav属性则会覆盖掉父工程的gav。2.maven工程的聚合关系。1.maven的继承特性。

2024-08-09 15:01:13 204

原创 maven学习第一天

(2)依赖中pom文件下载本地仓库能正常运行,但不会访问阿里镜像地址--此原因为本地仓库被污染,只需删除文件中的lastupdata文件重新下载依赖即可。(1)依赖版本错误--解决办法为检查依赖标签中的版本是否合理,标签是否错误。在scop标签内定义依赖范围,默认的作用范围为compile。(1)清除(2)打包(3)部署,但必须jar包。构建的生命周期:周期包含命令包含插件。然后在依赖标签内写入如下格式即可。依赖传递和依赖冲突常见的问题。1.提取版本号统一管理。依赖传递常见的下载问题。

2024-08-08 21:56:48 675

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除