franki Blog

make a small progress every day

Node.js 实战笔记 - chapter3

Node 编程基础 Node 不像大多数开源平台那样,它很容易设置,对内存和硬盘的空间没有过多的要求;也不需要复杂的集成开发环境来构建系统;但是需要面对两大难题 如何组织代码 如何做到异步变成 Node 功能的组织及重用 Node 模块允许你从被引入的文件中选择要暴露给程序的函数和变量;如果模块返回的函数或变量不止一个,那它可以通过设定 exports 对象的属性来指明它...

Node.js 实战笔记 - chapter2

构建有多个房间的聊天室程序 构建一个在线聊天室,用户可以在一个简单的表单中输入消息,相互聊天,消息输入后会发送给同一个聊天室内的其他用户 程序概览 输入消息 修改昵称 修改房间 换到新房间的结果 程序需求及初始设置 提供静态文件 在服务器上处理与聊天相关的消息 在用户的浏览器中处理与聊天相关的消息 提供 HTTP 和 Websocket 服务 ...

Node.js 实战笔记 - chapter1

欢迎进入 Node.js 世界 一个搭建在 Chrome JavaScript 运行时上的平台,用于构建高速、可伸缩的网络程序。Node.js 采用的事件驱动、非租塞IO模型,使它既轻量又高效,并成为构建运行在分布式设备上的数据密集型实时程序的完美选择 构建于 JavaScript 之上 开发人员用一种语言就能编写整个 web 应用 JSON 是目前非常流行的数据交换格式 ...

Node.js 实战笔记

Node.js 实战 下面的文章将会是自己学习 Node.js 过程中记录的笔记,具体的实操会托管在 github 上

回顾2022,展望2023

像上年差不多这个的时间一样,一眨眼的功夫就到了年末,经过这一年的洗礼,我竟一时之间想不出用什么词语来概括这个 2022,这一年依然是疫情戏谑的一年,我们每一个人都经受了各种各样的考验,而且在此之中,领略了各种人间乱象,工作、学习在疫情的反复中断断续续,总是很难让人聚精会神,思绪总是很容易被外界当前的情势扰乱,所以用几个词来总结 2022 就是惊慌失措、举棋不定、杂乱无章、不知路在何方 人生...

leetcode 633题

leetcode 633 平方数之和 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c 。 示例1 输入:c = 5 输出:true 解释:1 * 1 + 2 * 2 = 5 示例2 输入:c = 3 输出:false 思路 利用二分搜索,找到是否存在平方和 代码 /** * @param {number} c * @ret...

leetcode 628题

leetcode 628 三个数的最大乘积 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例1 输入:nums = [1,2,3] 输出:6 示例2 输入:nums = [1,2,3,4] 输出:24 示例3 输入:nums = [-1,-2,-3] 输出:-6 思路 排序,判断最后三个数的乘积和头两个数与最后一个数乘积,两者比...

leetcode 572题

leetcode 572 另一棵树的子树 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 示例1 输入:root = [3,4,5,1,...

leetcode 567题

leetcode 567 字符串的排列 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 示例1 输入:s1 = "ab" s2 = "eidbaooo" 输出:true 解释:s2 包含 s1 的排列之一 ("ba"). 示例2 输入:s1=...

leetcode 563题

leetcode 563 反转字符串中的单词 III 给你一个二叉树的根节点 root ,计算并返回 整个树 的坡度 。 一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。 整个树 的坡度就是其所有节点的坡度之和。 示例1 输入:root = [1,...