- 博客(25)
- 收藏
- 关注
原创 React基础整理
React是一个用于构建用户界面的JavaScript库,核心是通过组件化方式开发交互式UI。笔记首先介绍了JSX语法,包括其HTML-like标签写法、命名规则(驼峰式)和动态数据绑定(使用大括号{})。随后讲解了React组件概念,重点介绍了函数组件的定义方法、props传递机制以及默认值设置,并简要提及类组件作为对比。内容涵盖了条件渲染、列表渲染等常见场景,强调了React组件独立、可复用、可组合的特性。整体结构清晰,从基础语法到核心概念层层递进。
2025-12-04 17:29:20
780
原创 【每天学习一点算法 2025/12/04】外观数列
本文介绍了外观数列问题的两种解法。外观数列是通过递归定义的数字序列,每个新项是对前一项进行行程长度编码的结果。第一种解法采用迭代方法,通过遍历字符串统计连续相同字符的数量并生成新字符串。第二种解法利用题目给定的n范围限制(1≤n≤30),直接预计算并存储所有可能结果。两种方法各具特点:迭代法具有通用性,而打表法则在特定场景下效率更高。文章提供了TypeScript实现代码,并解释了两种解法的思路和适用场景。
2025-12-04 14:57:27
190
原创 【每天学习一点算法 2025/12/03】实现 strStr()
本文介绍了字符串匹配问题的三种解法:暴力枚举法、KMP算法和直接使用indexOf方法。暴力法通过逐个字符比较实现简单匹配;KMP算法利用部分匹配表(LPS数组)优化匹配过程,减少重复比较;最后指出最简单的方法是直接调用内置indexOf函数。文章详细说明了KMP算法的实现步骤,包括生成LPS数组和匹配过程。三种方法各有特点,可根据实际需求选择使用。
2025-12-03 22:17:03
251
原创 【每天学习一点算法 2025/12/02】字符串转换整数
本文介绍了实现字符串转换整数(atoi)的算法。该算法首先去除前导空格,然后检查符号位,接着将连续数字字符转换为整数。在转换过程中需注意32位整数范围限制,若超出范围则取边界值。最终返回带符号的整数结果。文中提供了TypeScript实现代码,并详细说明了每个步骤的处理逻辑,包括边界条件的判断方法。
2025-12-02 11:01:54
886
原创 【每天学习一点算法 2025/12/01】验证回文串
本文介绍了两种验证回文串的算法:1)通过正则处理字符串后反转比较;2)使用双指针从两端向中间遍历比较。第一种方法简洁直观,第二种方法效率更高。两种方法都需先处理非字母数字字符并将字母统一为小写。题目来源于LeetCode,要求判断处理后的字符串是否正反读相同。
2025-12-01 15:47:54
249
原创 【每天学习一点算法 2025/11/27】有效的字母异位词
本文介绍了两种判断字母异位词的方法:1)通过排序后比较字符串是否相等;2)使用哈希表统计字符出现次数。第一种方法简单直接,第二种方法效率更高但实现稍复杂。两种方法都能有效解决判断两个字符串是否为字母异位词的问题。
2025-11-28 14:42:56
253
原创 【每天学习一点算法 2025/11/27】字符串中的第一个唯一字符
本文介绍了两种查找字符串中第一个唯一字符的方法。第一种利用字符串的indexOf和lastIndexOf方法,通过比较字符首次和末次出现位置是否相同来判断唯一性。第二种采用哈希表统计字符出现频率,再遍历查找首个频率为1的字符。两种方法均能有效解决问题,前者更简洁,后者更具通用性。文章提供了TypeScript实现代码,适合算法初学者参考。
2025-11-27 20:13:11
259
原创 JavaScript的异步编程基础
本文介绍了JavaScript中的同步与异步执行模式。同步模式按照代码顺序逐行执行,通过调用栈管理函数调用;而异步模式通过任务队列和事件循环机制,允许耗时任务在后台执行,避免阻塞主线程。文章解释了单线程设计的必要性,以及异步模式如何通过回调函数处理任务结果。最后用洗衣机洗衣的例子形象说明了回调函数在异步编程中的作用。这两种模式共同构成了JavaScript高效处理任务的基础机制。
2025-11-27 10:48:16
540
原创 【每天学习一点算法 2025/11/26】整数反转
本文介绍了两种反转32位有符号整数的方法。第一种方法将数字转为字符串后反转再转回数字,需要考虑边界条件。第二种方法通过取模运算逐位取出数字并重新组合,更高效且同样处理边界情况。两种方法都确保了反转后的数字在32位有符号整数范围内,否则返回0。文章提供了TypeScript实现代码,适用于不允许存储64位整数的环境。
2025-11-26 23:46:15
233
原创 【每天学习一点算法 2025/11/25】反转字符串
不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。使用Array.prototype.reverse()嘿嘿嘿,这题撞枪口上了,我们直接使用数组的原型方法。方法,我们也是可以解决的,遍历数组交换。方法就地反转数组中的元素。
2025-11-25 19:23:44
158
原创 【每天学习一点算法 2025/11/24】旋转图像
本文探讨了顺时针旋转n×n二维矩阵的三种方法。第一种使用辅助数组,通过映射关系实现旋转;第二种原地旋转,通过交换四个对应位置的元素完成;第三种采用翻转替代旋转,先水平翻转再沿对角线翻转。文章通过图示清晰展示了每种方法的实现原理,并提供了TypeScript代码实现。三种方法各具特点,第一种直观但需要额外空间,后两种则实现了原地操作,适合空间复杂度要求高的场景。
2025-11-24 23:18:54
1014
原创 【每天学习一点算法 2025/11/21】有效数独
本文介绍了如何验证9x9数独的有效性。通过建立行、列和3x3宫格的Set集合,遍历数独时检查当前数字是否已在对应的行、列或宫格中出现。若出现重复则判定无效,否则将数字存入相应集合。该方法避免了暴力枚举,利用集合特性实现高效验证。关键点在于正确计算3x3宫格索引,通过行号列号除以3取整定位宫格位置。最终返回布尔值表示数独是否有效。
2025-11-21 11:54:29
304
原创 【每天学习一点算法2025/11/20】两数之和
本文讨论了"两数之和"问题的两种解法:1.暴力枚举法通过双重循环检查所有组合,时间复杂度O(N²);2.哈希表优化法使用Map存储已遍历元素,只需一次遍历即可找到解,时间复杂度降为O(N),但增加了空间开销。两种方法分别体现了不同的算法思想,后者通过空间换时间实现效率提升。该问题来自LeetCode经典面试题库,展示了基础算法优化思路。(150字)
2025-11-20 16:41:17
338
原创 简单整理一下前端算法基础
本文介绍了前端开发中常用的数据结构与基础算法。主要涵盖数组、对象、集合、映射、栈、队列和链表等数据结构的特点及应用场景。基础算法部分详细讲解了数组的遍历、查找(线性查找和二分查找)和排序(冒泡、选择、插入和快速排序)算法实现,以及栈和队列的基本操作(入栈/出栈、入队/出队)。此外还介绍了链表的遍历和节点查找方法,为前端开发者提供了实用的算法基础知识。
2025-11-20 11:48:37
842
原创 【每天学习一点算法2025/11/19】移动零
本文介绍了两种原地移动数组零元素的方法。第一种方法通过遍历数组,遇到零时删除并推入数组末尾,同时调整索引;第二种采用双指针法,快指针遍历数组,慢指针标记非零元素位置,通过交换实现零元素后移。两种方法都满足了不复制数组、保持非零元素顺序的要求。双指针法更为高效,时间复杂度为O(n)。示例代码使用TypeScript实现,适用于类似[0,1,0,3,12]的输入数组。
2025-11-19 14:32:40
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1