<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>hainoir 的博客</title><description>记录前端学习、项目实践与算法思考。</description><link>https://hainoir.github.io/</link><item><title>摆脱鼠标编程</title><link>https://hainoir.github.io/posts/57db8602.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/57db8602.html</guid><description>Ctrl + Alt + L： 代码快速自动缩进整理 Ctrl + Shift + F10： 快速运行程序 Ctrl + Shift + ↑↓： 快速移动当前行代码到另一行 Ctrl + Shift + ←→： 快速选中代码 Ctrl + c/v： 复制粘贴 Ctrl + O： 快速实现该方法 Ctrl + Z： 撤销 Ctrl + F12： 查看当前类的所...</description><pubDate>Thu, 05 Feb 2026 08:22:51 GMT</pubDate><category>小技巧</category></item><item><title>React</title><link>https://hainoir.github.io/posts/d8a440d1.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/d8a440d1.html</guid><description>React 一.Effect 1. 概念 在 React 中，Effect 指的是在组件渲染过程之外发生的一切事情。也就是说，任何 React 不直接处理的与渲染 UI 相关的操作。 常见的例子包括获取数据、更新浏览器标签页的标题、读取或写入浏览器的本地存储、获取用户的位置等。这些操作与外部世界进行交互，被称为副作用。 2.使用方法 首先需要导入 然后像函数...</description><pubDate>Thu, 05 Feb 2026 08:22:41 GMT</pubDate><category>React</category><category>前端</category></item><item><title>JavaScript 编码原则</title><link>https://hainoir.github.io/posts/bea3b2c9.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/bea3b2c9.html</guid><description>JavaScript 编码原则 写好JS的一些原则 1. 各司其职 ​ 让HTML，CSS，Javascript职能分离 2. 组件封装 ​ 好的UI组件具备正确性、拓展性、复用性。 3. 过程抽象 ​ 应用函数式编程思维 1.各司其责 HTML / CSS / JS 各司其责 应当避免不必要的由JS直接操作样式 可以用class来表示状态 纯展示累交互寻求...</description><pubDate>Thu, 05 Feb 2026 08:22:41 GMT</pubDate><category>JavaScript</category><category>前端</category></item><item><title>深入浅出TypeScript</title><link>https://hainoir.github.io/posts/e86ee304.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/e86ee304.html</guid><description>深入浅出TypeScript 1.为什么要学TS TypeScript JavaScript : : : : JavaScript的超集，用于解决大型项目的代码复杂性 一种脚本语言，用于创建动态网页 强类型，支持静态和动态类型 动态弱类型语言 可以在编译期间发现并纠正错误 只能在运行时发现错误 不允许改变变量的数据类型 变量可以被赋值成不同类型 特性 类型安...</description><pubDate>Thu, 05 Feb 2026 08:22:41 GMT</pubDate><category>TypeScript</category><category>前端</category></item><item><title>4.单调栈，单调队列</title><link>https://hainoir.github.io/posts/f569f5a2.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/f569f5a2.html</guid><description>4.单调栈，单调队列 1.单调栈 2.单调队列</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>5.树状数组和离散化</title><link>https://hainoir.github.io/posts/62da137b.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/62da137b.html</guid><description>5.树状数组和离散化 1.离散化 ​ 离线操作（存下操作，后执行） 2.树状数组（不能用0当下标） 维护区间和 单点修改O(1) 区间修改O(nlogn) 区间查询O(nlogn) Ti的管辖区间：[i lowbit(i) + 1 ,i]，长度：lowbit(i)</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>6.图的存储方式，DFS，BFS</title><link>https://hainoir.github.io/posts/a72304e1.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/a72304e1.html</guid><description>6.图的存储方式，DFS，BFS 1.领接矩阵 2.领接表 1. 前向星 2. vector（支持排序） ​ 单向边，无向边（双向边） 3.DFS（深度优先）</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>C++中各类函数的用法</title><link>https://hainoir.github.io/posts/5513a8e3.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/5513a8e3.html</guid><description>C++中各类函数和方法的用法 1.bitset 2.vector 3.reverse 4.memset 5.abs() 求绝对值 6.sort()</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>3.栈，优先队列，map，set，bitset</title><link>https://hainoir.github.io/posts/aa3f72d6.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/aa3f72d6.html</guid><description>3.栈，优先队列，map，set，bitset 1. 栈 2.优先队列 3.map 4.set 5.bitset</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>2.位运算双指针排序二分</title><link>https://hainoir.github.io/posts/ca70cb17.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/ca70cb17.html</guid><description>2.位运算双指针排序二分 1.位运算 ​ 与：&amp; ​ 或： ​ 非：！ ​ 异或：^ （任何数，与0进行异或都等于0）eg:【a + b = 2（a &amp; b）+ (a ^ b)】 ​ 移位： (右移) ​ 取反： 2.排序 数组去重排序模板： 遇见一个元素中有多个数据，且需要排列不同元素时，就需要使用cmp或struct； 3.双指针 ​ 1.只往一个方向走...</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>Java字符串方法</title><link>https://hainoir.github.io/posts/b324aa57.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/b324aa57.html</guid><description>Java字符串方法 1.equals eg： equal可以比较两个字符串是否相同，得到的结果是布尔值，即true or false。 2.length 得到字符串长度 3.charAt eg: 可得到对应参数的字符，结果是h 4.indexOf eg: 可以得到参数字符的位置，结果是0； 5.isEmpty eg: 可以判断字符串是否为空，结果类型是布尔值...</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>Java</category><category>算法</category></item><item><title>java算法</title><link>https://hainoir.github.io/posts/2f8a531c.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/2f8a531c.html</guid><description>1.最大公约数gcd 2.最小公倍数lcm 3.素数 4.素数筛（预处理素数）</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>Java</category><category>算法</category></item><item><title>常见的算法</title><link>https://hainoir.github.io/posts/b74716b.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/b74716b.html</guid><description>常见的算法 1.两点间距离 2.求质数 3.对数组进行重复且不叠加的修改时 1.可以令数组全为0，令被修改的数为1 2.可以用bool 定义数组 4.输出小数</description><pubDate>Thu, 05 Feb 2026 08:22:31 GMT</pubDate><category>C++</category><category>算法</category></item><item><title>1.前缀和与差分</title><link>https://hainoir.github.io/posts/32c27e41.html</link><guid isPermaLink="true">https://hainoir.github.io/posts/32c27e41.html</guid><description>1.前缀和与差分</description><pubDate>Mon, 14 Apr 2025 11:41:02 GMT</pubDate><category>C++</category><category>算法</category></item></channel></rss>